PHP If语句问题

1 php

对于下面的代码,我试图使用IF语句

如果(mysql_num_rows($ RESA)> 0)

如果$ entry不在我数据库中任何表的"site"列中,则避免运行foreach循环.但是,如果我的数据库中的任何表中的"site"列中不存在$ entry,则会收到错误消息"警告:为foreach()提供的参数无效".知道为什么这样做吗?

提前致谢,

约翰

$result = mysql_query("SHOW TABLES FROM feather") 
or die(mysql_error()); 

while(list($table)= mysql_fetch_row($result))
{
  $sqlA = "SELECT COUNT(*) FROM `$table` WHERE `site` LIKE '$entry'";

  $resA = mysql_query($sqlA) or die("$sqlA:".mysql_error());
  list($isThere) = mysql_fetch_row($resA);
  $isThere = intval($isThere);
  if ($isThere)
  {
     $table_list[] = $table;
  }

}

if(mysql_num_rows($resA)>0){
foreach ($table_list as $table) { 
    $sql = "SELECT votes_up FROM `$table` WHERE `site` LIKE '$entry'"; 
    $sql1 = mysql_query($sql) or die("$sql:".mysql_error());
   while ($row = mysql_fetch_assoc($sql1)) {
       $votes[$table] = $row['votes_up'];
       $sum += $row['votes_up'];
   } 

}
}
else{
print "";
}
Run Code Online (Sandbox Code Playgroud)

Bli*_*ixt 7

初始化变量是个好主意:

$table_list = array(); // <-- Initialize variable.
while (list($table) = mysql_fetch_row($result)) {
    /* ... */
    $table_list[] = $table;
    /* ... */
}

if (mysql_num_rows($resA) > 0) {
    foreach ($table_list as $table) { 
        /* ... */
    }
}
Run Code Online (Sandbox Code Playgroud)

您收到错误是因为没有添加任何条目,$table_list这意味着在运行foreach循环时该变量将不存在.首先将其初始化以避免这种混淆.

没有添加条目的原因$table_list是因为所有获取的表的计数为零.