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)
初始化变量是个好主意:
$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是因为所有获取的表的计数为零.
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |