php - 带有条件语句的 mysqli fetch_assoc

标签 php mysql

我正在尝试使用 fetch_assoc 和一些条件语句在我的页面上显示查询的多个部分。我的第一个 while 循环显示了正确的信息,但循环 2 和 3 没有显示任何信息。过滤结果的正确方法是什么?

require_once('inc/connection.inc.php');

//create database connection
$conn = dbConnect();

//create SQL
$sql = 'SELECT * FROM menu';

$result = $conn->query($sql) or die(mysqli_error());
while($row = $result->fetch_assoc()){

if($row['category'] == 'appetizers'){ 
    echo $row['title']; 
    echo $row['price'];
}  

}

while($row = $result->fetch_assoc()){

if($row['category'] == 'salads'){ 
    echo $row['title']; 
    echo $row['price'];
}  

}

while($row = $result->fetch_assoc()){

if($row['category'] == 'desserts'){ 
    echo $row['title']; 
    echo $row['price'];
}  

}

最佳答案

为什么不这样做:

while($row = $result->fetch_assoc()){

   if($row['category'] == 'appetizers'){ 
     echo '<h1>Appetizers</h1>';
     echo $row['title']; 
     echo $row['price'];
   }  

   if($row['category'] == 'salads'){ 
     echo '<h1>Salads</h1>';
     echo $row['title']; 
     echo $row['price'];
   }  

   if($row['category'] == 'desserts'){ 
     echo '<h1>Desserts</h1>';
     echo $row['title']; 
     echo $row['price'];
   } 

}

即,在单个 while 循环中使用条件。

或者

您可以使用mysqli_data_seek将指针重置为第一条记录并多次重复使用同一资源

while($row = $result->fetch_assoc()){

   if($row['category'] == 'appetizers'){ 
     echo $row['title']; 
     echo $row['price'];
   }  
}

mysqli_data_seek($result,0);
while($row = $result->fetch_assoc()){

   if($row['category'] == 'salads'){ 
     echo $row['title']; 
     echo $row['price'];
   }
}

mysqli_data_seek($result,0);
while($row = $result->fetch_assoc()){

   if($row['category'] == 'desserts'){ 
     echo $row['title']; 
     echo $row['price'];
   }
}

关于php - 带有条件语句的 mysqli fetch_assoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23669455/

相关文章:

MySQL进程检查器

PHP fatal error : Uncaught Error: Class 'Facebook\WebDriver\ChromeOptions' not found

php - 在 PHP 中打破多个函数(短路)

php - 尝试从 PHP 执行 C 程序并将其输出到 Web 浏览器

php - 在结帐页面 magento 更新产品数量

php - 查询两张表然后一列输出

php - Magento 最近查看的产品

php - 防止php中的sql注入(inject)

php - mysqli_real_escape_string 和准备好的语句?

php - 无效参数编号 : number of bound variables does not match number of tokens in Doctrine