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