gpt4 book ai didi

php - 如果声明不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:49 26 4
gpt4 key购买 nike

如果数据库中“站点”列下的任何地方都没有 $entry 值,我希望下面代码的输出为“$entry 不存在”。但是,当我输入一个我知道不在数据库“站点”列下的 $entry 值时,这并没有发生。我的 if 语句有问题吗?

提前致谢

约翰

$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());
if(mysql_num_fields($resA)>0){
list($isThere) = mysql_fetch_row($resA);
if ($isThere)
{
$table_list[] = $table;
}
}
else{
print "<p class=\"topic\">$entry does not exist</p>\n";
}
}

最佳答案

是的。不过,您的格式并没有真正做到公正,请尝试清理它以便更容易理解。 NetBeans IDE,甚至 Zend Development Environmont ($) 都可以自动格式化代码,这让生活变得更加轻松。

$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());
if(mysql_num_fields($resA)>0){
list($isThere) = mysql_fetch_row($resA);
if ($isThere) {
$table_list[] = $table;
}
} else{
print "<p class=\"topic\">$entry does not exist</p>\n";
}
}

简而言之:

mysql_num_fields($resA) 总是大于零,因为 COUNT(*) 函数总是返回一个值,无论是(0 或 1 或 1000000,等等)

要修复,将 else 提高一级,我会使用强制转换来更安全。最后,mysql_num_fields 并不是真正必要的,因为你知道它总是 1:

$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 > 0) {
$table_list[] = $table;
} else{
print "<p class=\"topic\">$entry does not exist</p>\n";
}
}

就是这样。

关于php - 如果声明不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1010854/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com