我不确定此代码是否使用“while”或“foreach”。
我有一个 mysql 查询,它将返回多个结果。
然后,对于每个结果,如果 $row[number]
为空或不为空,我想要执行某件事
我有这个:
$sql = "SELECT * FROM $tbl_name WHERE username=\"$myusername\"";
$result=mysql_query($sql);
$numResults = mysql_num_rows($result);
if ($numResults = 0) {
header ("Location: /sms_error.php?error=no_adders");
}
while($row = mysql_fetch_array($result)) {
$number1=$row["number"];
if (!empty($number1)) {
}
if (empty($number1)) {
}
这对于 $number1 来说是完全空白的(即使数据库上有数据)。
到目前为止一切都是正确的,$myusername 和 mysql 查询不会返回空。
那么它应该是mysql-fetch-assoc还是-array,应该是while还是foreach?
谢谢, 尼尔
最佳答案
首先,您在这行代码中遇到问题:
if ($numResults = 0) {
header ("Location: /sms_error.php?error=no_adders");
}
这始终是错误的 - 您不是在比较,而是将 0 分配给 $numResults。将其更改为 == 并查看是否通过查询提取了任何行。
while($row = mysql_fetch_array($result)) {
$number1=$row["number"];
//...
}
正如我所见,这是一个有效的语法。尝试调用 var_dump($row)
来查看 $row
数组的内容。
编辑:
哦,是的 - 而不是这个:
$result=mysql_query($sql);
这样做:
$result=mysql_query($sql) or die(mysql_error());
还有一个建议 - 您应该始终在 header("Location: ...");
之后调用 exit();
以防止在重定向行后执行代码脚本,因为 header 仅要求用户浏览器重定向。
关于php - 对 mysql 查询的每个单独结果使用 while 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6307763/