PHP在SHOW TABLES结果上运行查询

How do I go about running a query on tables from a previous SHOW TABLES query? What I'm trying to do is create a PHP script that runs every 24 hours that sorts a table by "verified" descending and "votes" descending and update "nomnom" on the top result, for every table in the database.

$result = $conn->query("SHOW TABLES");

if($result->num_rows > 0) {
    while($row = $result->fetch_array()) {
        $sql = "SET @clan = (SELECT clan FROM " . $row[0] . " ORDER BY verified DESC, votes DESC LIMIT 1); UPDATE " . $row[0] . " SET nomnom=0 verified=0; UPDATE " . $row[0] . " SET nomnom=1 WHERE clan=@clan";
        $conn->query($sql);
        echo $row[0] . ' done<br>';
    }
} else {
    echo 'query 0';
}

This correctly echos every table name followed by done, but isn't actually updating the tables. What am I missing?

UPDATE

So I've determined that the following should work:

$sql = "SET @clan := (SELECT `clan` FROM " . $row[0] . " ORDER BY `verified` DESC, `votes` DESC LIMIT 1); UPDATE " . $row[0] . " SET `nomnom`=0, `verified`=0; UPDATE " . $row[0] . " SET `nomnom`=1 WHERE `clan`=@clan";

by echoing $sql and running the queries returned through phpmyadmin without changing anything. Here's a line that is echoed.

SET @clan := (SELECT clan FROM aerngardh ORDER BY verified DESC, votes DESC LIMIT 1); UPDATE aerngardh SET nomnom=0, verified=0; UPDATE aerngardh SET nomnom=1 WHERE clan=@clan

It just for some reason isn't actually doing it when using

$conn->query($sql); 

UPDATE 2

Figured out a way to make it work. Would mark my answer but I can't for 2 days...

Try this query

$sql = SET @clan := (SELECT clan FROM aerngardh ORDER BY verified DESC, votes DESC LIMIT 1); UPDATE aerngardh SET nomnom=0, verified=0; UPDATE aerngardh SET nomnom=1 WHERE clan=@clan

This should work

Had to split the query into 3 separate queries. Full working code:

$conn = new MySQLi($servername, $username, $password, $dbname);

$result = $conn->query("SHOW TABLES");

if($result->num_rows > 0) {
    while($row = $result->fetch_array()) {
        $sql = "SET @clan := (SELECT clan FROM " . $row[0] . " ORDER BY verified DESC, votes DESC LIMIT 1);";
        $sql2 = "UPDATE " . $row[0] . " SET nomnom=0, verified=0;";
        $sql3 = "UPDATE " . $row[0] . " SET nomnom=1 WHERE clan=@clan";
        $conn->query($sql);
        echo $conn->error . '<br>';
        $conn->query($sql2);
        echo $conn->error . '<br>';
        $conn->query($sql3);
        echo $conn->error . '<br>';

    }
} else {
    echo 'query 0';
}

If anyone would like to post how to make this a proper multi_query without getting queries out of sync errors, be my guest. I cba doing that lol.