Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3 | daniel-mar | 1 | #!/usr/bin/php |
2 | <?php |
||
3 | |||
4 | require_once __DIR__ . '/includes/db.inc.php'; |
||
5 | require_once __DIR__ . '/includes/src.inc.php'; |
||
6 | |||
7 | if ($argc <> 3) { |
||
8 | echo "Syntax: $argv[0] <newCategory> <id>\n"; |
||
9 | #db_close(); |
||
10 | exit(2); |
||
11 | } |
||
12 | |||
13 | $newcat = trim($argv[1]); |
||
14 | $id = trim($argv[2]); |
||
15 | |||
16 | # Range support |
||
17 | if (strpos($id, '-') !== false) { |
||
18 | $ary = explode('-', $id, 2); |
||
19 | $id_min = $ary[0]; |
||
20 | $id_max = $ary[1]; |
||
21 | } else { |
||
22 | $id_min = $id; |
||
23 | $id_max = $id; |
||
24 | } |
||
25 | if (($id_min == 0) || ($id_max == 0)) { |
||
26 | fwrite(STDERR, "0 not a valid ID\n"); |
||
27 | #db_close(); |
||
28 | exit(3); |
||
29 | } |
||
30 | if ($id_min>$id_max) { |
||
31 | fwrite(STDERR, "RANGE ERROR $id_min>$id_max\n"); |
||
32 | #db_close(); |
||
33 | exit(3); |
||
34 | } |
||
35 | $id_cnt = $id_max-$id_min + 1; |
||
36 | |||
37 | # Simulation mode |
||
38 | if ($stam_cfg['simulation']) { |
||
39 | fwrite(STDERR, "============ ID-MOVETO SIMULATION: $id_min..$id_max :: $newcat\n"); |
||
40 | #db_close(); |
||
41 | exit(0); |
||
42 | } |
||
43 | |||
44 | $res = db_query("SELECT id, cat, txt FROM stam_entries WHERE |
||
45 | id >= '".db_real_escape_string($id_min)."' |
||
46 | AND id <= '".db_real_escape_string($id_max)."' |
||
47 | "); |
||
48 | if (!$res) { |
||
49 | fwrite(STDERR, db_error()."\n"); |
||
50 | #db_close(); |
||
51 | exit(1); |
||
52 | } |
||
53 | while ($row = db_fetch_array($res)) { |
||
54 | $id = $row['id']; |
||
55 | $oldcat = $row['cat']; |
||
56 | $txt = $row['txt']; |
||
57 | |||
58 | if ($oldcat == $newcat) { |
||
59 | echo "ID $id is already in <$oldcat>: $txt\n"; |
||
60 | continue; // not affected |
||
61 | } |
||
62 | |||
63 | $x = db_query("UPDATE stam_entries SET |
||
64 | cat = '".db_real_escape_string($newcat)."' |
||
65 | WHERE |
||
66 | id = '".db_real_escape_string($id)."' |
||
67 | "); |
||
68 | if (!$x) { |
||
69 | fwrite(STDERR, db_error()."\n"); |
||
70 | #db_close(); |
||
71 | exit(1); |
||
72 | } |
||
73 | |||
74 | $afr = db_affected_rows(); |
||
75 | if ($afr != 1) { |
||
76 | fwrite(STDERR, "Error: Could not update $id <$oldcat> '$txt'\n"); |
||
77 | #db_close(); |
||
78 | exit(1); |
||
79 | } else { |
||
80 | echo green("OK! Moved $id from '$oldcat' to '$newcat': $txt\n"); |
||
81 | } |
||
82 | } |
||
83 | |||
84 | # --- |
||
85 | |||
86 | function green($txt) { |
||
87 | return "\033[1;32;40m".$txt."\033[0m"; |
||
88 | } |
||
89 |