我认为由于if语句,while语句会跳过第一个语句。
但我需要IF,我需要WHILE。
这是我的代码:
if($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)){
while($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)){
$antwoorden .= "".$row_antwoorden_select['naam']."".$row_antwoorden_select['methode']." <a href='".$row_antwoorden_select['url']."'>Open</a><br>";
$once_info = "<h4>Antwoorden:</h4>".$select_menu."<br>";
}
}
答案 0 :(得分:1)
看起来您的if
语句只是检查查询是否有结果。如果这是真的,并且您确实希望保留if
语句,则可以将其更新为使用mysqli_num_rows()
代替:
if(mysqli_num_rows($results_antwoorden_select) > 0) {
while($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)){
$antwoorden .= "".$row_antwoorden_select['naam']."".$row_antwoorden_select['methode']." <a href='".$row_antwoorden_select['url']."'>Open</a><br>";
$once_info = "<h4>Antwoorden:</h4>".$select_menu."<br>";
}
}
注意:如果没有任何结果, mysqli_fetch_array()
将返回null
,因此从技术上讲,完全取消if
块会让您的示例代码正常工作完全没问题。
或者,如果确实希望将mysqli_fetch_array()
保留在if
块中,则可以将您的循环更新为do/while
:
if($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)) {
do {
$antwoorden .= "".$row_antwoorden_select['naam']."".$row_antwoorden_select['methode']." <a href='".$row_antwoorden_select['url']."'>Open</a><br>";
$once_info = "<h4>Antwoorden:</h4>".$select_menu."<br>";
} while($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select));
}
答案 1 :(得分:0)
您在$row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)
语句中使用if
这绝对是错误的,因为您必须使用num_rows
函数检查表中的可用行数您应该尝试这将解决你的问题
if($results_antwoorden_select->num_rows > 0){
while($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)){
$antwoorden = "".$row_antwoorden_select['naam']."".$row_antwoorden_select['methode']." <a href='".$row_antwoorden_select['url']."'>Open</a><br>";
$once_info = "<h4>Antwoorden:</h4>".$select_menu."<br>";
}
}