我有一些代码需要遍历某些代码,但是我不确定使用哪种最佳循环。想法是,如果查询有任何结果,则回显ERROR:并停止。如果没有结果,请转到bla bla
。
目前,if语句仅返回1个项目,并且有多个。现在我知道我需要某种类型的循环来遍历结果,但是需要有关使用哪个循环的帮助。我尝试过将if语句放入while循环中,但它也直接进入bla bla
。我也尝试使用exit;循环,但这也失败。
如果有人可以帮助我,我将不胜感激,因为我对这种编码形式还很陌生。非常感谢
$sql = "SELECT * FROM files WHERE department = '$dept' AND boxref = '$items'";
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
if($result = mysqli_query($conn, $sql)){
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
$fileid = $row['id'];
$fstatus = $row['filestatus'];
$fitem = $row['custref'];
$boxitem = $row['boxref'];
}
}
}
if($fstatus != '9') {
echo 'ERROR:';
echo ' File: ' . ' ' . $fitem . ' ' . ' In box: ' . $boxitem . '<br />';
} else {
echo 'bla bla';
}
答案 0 :(得分:2)
您好,使用foreach循环对循环项目数组有好处:
答案 1 :(得分:1)
这是由于循环后检查条件引起的!您需要将语句移入循环。您也可以删除 mysqli_num_rows($result) > 0
,因为它没有任何作用。 (如果没有行,将跳过循环)
$sql = "SELECT * FROM files WHERE department = '$dept' AND boxref = '$items'";
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
if($result = mysqli_query($conn, $sql)){
while($row = mysqli_fetch_array($result)){
$fileid = $row['id'];
$fstatus = $row['filestatus'];
$fitem = $row['custref'];
$boxitem = $row['boxref'];
if($fstatus != '9') {
echo 'ERROR:';
echo ' File: ' . ' ' . $fitem . ' ' . ' In box: ' . $boxitem . '<br />';
} else {
echo 'bla bla';
}
}
}
我认为最好的循环遍历此循环-您不必考虑其他问题。