PHP从mysql获取数据并相应显示

时间:2018-09-29 07:01:41

标签: php mysql

我有一个包含产品和类别表的数据库。我设法显示了产品类别及其相关产品。而且目前看起来像这样。

enter image description here

但是我需要像这样

Category B
   Product 1

Category A
   Product 2
   Product 3
   Product 4
   Product 5

以下是我的查询

<?php                        
if(mysqli_num_rows($result) > 0)  
{  
while($row = mysqli_fetch_array($result))  
{  
?>  
<h1><?php echo $row["name"];?></h1>
<p><?php echo $row["prod_desc"];?></p>
<a href=""><?php echo $row["prod_name"]; ?></a>
<?php echo $row["quantity"]; ?>
<?php echo $row["buy_price"]; ?>
<?php  
}  
}  
?>

2 个答案:

答案 0 :(得分:0)

首先重新排列数组,然后尝试使用它来显示数据

<?php
    $final_array = [];
    if(mysqli_num_rows($result) > 0)  {  
        while($row = mysqli_fetch_array($result)){
            $final_array[$row["name"]][] = ['prod_desc'=>$row["prod_desc"],'prod_name'=>$row["prod_name"],'quantity'=>$row["quantity"],'price'=>$row["buy_price"]];
        }
?>
        <?php foreach($final_array as $key=>$val){?>  
            <h1><?php echo $key;?></h1>
            <?php foreach($val as $v){?>
                <p><?php echo $v["prod_desc"];?></p>
                <a href=""><?php echo $v["prod_name"]; ?></a>
                <?php echo $row["quantity"]; ?>
                <?php echo $row["buy_price"]."<br><br>"; ?>
            <?php  } ?>
        <?php   } ?>
    <?php }?>

答案 1 :(得分:0)

尝试存储上次使用的类别并检查其是否更改:

<?php                        
$category='';
if(mysqli_num_rows($result) > 0)  
{  
	while($row = mysqli_fetch_array($result))  
	{  
		if($category!=$row["name"]) {
		?>  
		<h1><?php echo $row["name"];?></h1>
		?>
		}
		$category=$row["name"];
		<?php
		<p><?php echo $row["prod_desc"];?></p>
		<a href=""><?php echo $row["prod_name"]; ?></a>
		<?php echo $row["quantity"]; ?>
		<?php echo $row["buy_price"]; ?>
		<?php  
		}  
}  
?>

请记住在SQL查询中按类别对输出数据进行排序