В вашем коде есть несколько анти-паттернов. Давайте очистим это. Я объясню, что было изменено в один миг.
if($ready !== "y") {
$sth = mysql_query("SELECT inserted FROM team WHERE inserted = 'n'");
if(mysql_num_rows($sth) > 0) {
mysql_query("UPDATE game SET ready = 'y'");
}
}
Перво-наперво: нет необходимости выполнять запрос, извлекать все результатов, а затем перебирать эти результаты (in_array
) в поисках определенного значения. Пусть база данных сделает это за вас, явно просматривая только те строки, где inserted
- строковый литерал "n"
.
Поскольку мы знаем, что получаем только "n"
записи, нам просто нужно проверить, есть ли какие-либо результаты. Если это так, запустите запрос. Если нет записей "n"
, UPDATE
не запускается.
Если вам нужно знать, что UPDATE
запущен, добавьте проверку для него:
$ran_update = false;
if($ready !== "y") {
$sth = mysql_query("SELECT inserted FROM team WHERE inserted = 'n'");
if(mysql_num_rows($sth) > 0) {
mysql_query("UPDATE game SET ready = 'y'");
$ran_update = true;
}
}
if($ran_update) {
// ...
}