gpt4 book ai didi

PHP MySQL 将输出分成几个部分

转载 作者:行者123 更新时间:2023-11-29 05:16:06 26 4
gpt4 key购买 nike

我正在尝试使用 PHP 和 MySQL 做一些我无法理解的事情。

我有一个采用以下结构的表(它们是两个表,但当它们在 SQL 查询中连接时将充当一个表):

id | brand  | model  
1 | brand1 | model1
2 | brand1 | model2
3 | brand1 | model3
4 | brand2 | modelA

我已经能够让 PHP 输出以下内容:

brand1 model1  
brand1 model2
brand1 model3
brand2 modelA

我真正想做的是将其输出为:

Brand1  
Model1
Model2
Model3

Brand2
ModelA

有人有什么想法吗?

这是我当前的代码:

<?php 
$result = mysql_query("SELECT cameras.cameraid, cameras.model, brands.brand FROM cameras JOIN brands ON cameras.brandid=brands.brandid WHERE cameras.categoryid='$cat' ORDER BY brands.brand ASC, cameras.level ASC")or die(mysql_error());

while($row = mysql_fetch_array($result))
{
echo "<li><a href='camera.php?id=". $row['cameraid'] . "'>" . $row['brand'] . " " . $row['model'] . "</a></li>";
}

?>

最佳答案

您正在寻找的是一个带有嵌套 foreach 循环的二维数组。这将允许你有一个看起来像这样的数组

Array ( 
[brand1] => Array (
[1] => model1
[2] => model2
[3] => model3
)
[brand2] => Array (
[4] => modelA
[5] => modelB
[6] => modelC
)
)

当我们稍后将模型回显为每个品牌的列表时,我们会利用这一点。第一个数组将包含所有品牌,而每个品牌都是自己的数组 - 创建二维数组,其中包含所有型号(以及产品 ID 作为该数组中元素的键)。

将每个元素放入 while($row = mysql_fetch_array($result)) 循环中的数组中,并使用嵌套的 foreach 循环回显他们出来了。

while ($row = mysql_fetch_array($result)) {
// Here we fetch all the results, and put it into a two-dimentional array
// with keys as brandname and the ID of the product
$brands[$row['brand']][$row['cameraid']] = $row['model'];
}

// Then we echo them all out in a list!
foreach ($brands as $key=>$brand) {
// The $key is the name of the brand
echo $key."<ul>";
foreach ($brand as $id=>$model) {
// The $id is the ID of the camera in the table
// The $model is the model-name itself
echo "<li><a href='camera.php?id=".$id."'>".$model."</a></li>";
}
echo "</ul>";
}

此外,它已被弃用且不推荐,要使用 mysql_* 函数,您应该考虑移动到 mysqli_*PDO 以获得更好的功能,持续的支持和更好的安全性。

关于PHP MySQL 将输出分成几个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32618704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com