Files
tomtomgames/fix_broadcast.php
T
2026-05-22 12:52:50 +00:00

29 lines
1.8 KiB
PHP

<?php
// Fix broadcast_list in admin.php on server - delete after running
$f = '/home/tomtomgames.com/public_html/api/admin.php';
$c = file_get_contents($f);
$idx = strpos($c, "case 'broadcast_list':");
$end = strpos($c, " break;", $idx) + 14;
$new = "case 'broadcast_list':\n try {\n \$sql = \"SELECT b.id, b.subject, b.message, b.target, b.sent_at, u.username AS sender_name, (SELECT COUNT(*) FROM broadcast_reads WHERE broadcast_id=b.id) AS read_count, (SELECT COUNT(*) FROM broadcast_replies WHERE broadcast_id=b.id) AS reply_count, (SELECT COUNT(*) FROM users WHERE status='active' AND is_admin=0) AS total_players FROM broadcasts b JOIN users u ON b.admin_id=u.id ORDER BY b.sent_at DESC LIMIT 100\";\n \$stmt = db()->query(\$sql);\n echo json_encode(['success'=>true,'broadcasts'=>\$stmt->fetchAll()]);\n } catch(Exception \$e) {\n echo json_encode(['success'=>false,'error'=>\$e->getMessage()]);\n }\n break;";
$c = substr($c, 0, $idx) . $new . substr($c, $end);
file_put_contents($f, $c);
// Verify it works
require_once '/home/tomtomgames.com/includes/config.php';
require_once '/home/tomtomgames.com/includes/db.php';
try {
$stmt = db()->query("SELECT COUNT(*) FROM broadcasts");
echo "OK - broadcasts in DB: " . $stmt->fetchColumn() . "\n";
$stmt2 = db()->query("SELECT b.id, b.subject, b.sent_at, u.username AS sender_name FROM broadcasts b JOIN users u ON b.admin_id=u.id ORDER BY b.sent_at DESC LIMIT 5");
$rows = $stmt2->fetchAll();
echo "Query works - rows: " . count($rows) . "\n";
foreach($rows as $r) echo " #{$r['id']}: {$r['subject']} by {$r['sender_name']}\n";
} catch(Exception $e) {
echo "ERROR: " . $e->getMessage() . "\n";
}
echo "DONE - delete this file\n";