Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/usr/bin/php
<?php
require_once __DIR__ . '/includes/db.inc.php';
require_once __DIR__ . '/includes/src.inc.php';
require_once __DIR__ . '/includes/wildcard.inc.php';
if ($argc < 3) {
echo "Syntax: $argv[0] <newCategory> <categoryWildcard>\n";
#db_close();
exit(2);
}
array_shift($argv);
$newcat = trim($argv[0]);
array_shift($argv);
if (!isset($argv[0]) || (trim($argv[0])=='')) $argv[0] = '*';
$arg = trim(implode(' ', $argv));
# while ($arg = array_shift($argv)) {
$wildcard = trim(mywc($arg));
# Simulation mode
if ($stam_cfg['simulation']) {
fwrite(STDERR, "============ CAT-MOVETO SIMULATION: $wildcard :: $newcat\n");
#db_close();
exit(0);
}
$res = db_query("SELECT id, cat, txt FROM stam_entries WHERE
cat LIKE '".db_real_escape_string($wildcard)."'
");
if (!$res) {
fwrite(STDERR, db_error()."\n");
#db_close();
exit(1);
}
while ($row = db_fetch_array($res)) {
$id = $row['id'];
$oldcat = $row['cat'];
$txt = $row['txt'];
if ($oldcat == $newcat) {
echo "ID $id is already in <$oldcat>: $txt\n";
continue; // not affected
}
$x = db_query("UPDATE stam_entries SET
cat = '".db_real_escape_string($newcat)."'
WHERE
id = '".db_real_escape_string($id)."'
");
if (!$x) {
fwrite(STDERR, db_error()."\n");
#db_close();
exit(1);
}
$afr = db_affected_rows();
if ($afr != 1) {
fwrite(STDERR, "Error: Could not update $id <$oldcat> '$txt'\n");
#db_close();
exit(1);
} else {
echo green("OK! Moved $id from '$oldcat' to '$newcat': $txt\n");
}
}
# }
# ---
function green($txt) {
return "\033[1;32;40m".$txt."\033[0m";
}