php - 如何在数组中检索与查询关联的其他值?
问题描述
下面的代码可以让我获取一个类别的所有子类别,但我也想在 foreach 循环中获取与它相关的其他字段,比如如果子类别是智能手机之类的产品,那么也可以获取它的价格。
如何获取其他值并在 foreach 循环中并排显示?
$query=mysql_query("SELECT * FROM thing WHERE tol_id='$bid' ORDER BY categoryname, name");
$categories = [];
if(mysql_num_rows($query) > 0){
while($row=mysql_fetch_array($query)) {
$categories[$row['categoryname']][] = $row['name'];
$itsprice = $row['price'];
}
}
if(!empty($categories)) {
foreach($categories as $categoryName => $subCategories) {
echo "<div class='stuff'>
<p>".$categoryName."</p>
<div id='rowstuff'>";
if(!empty($subCategories)) {
foreach($subCategories as $subCategory) {
echo "<div id='name'>".$subCategory."</div>
<div id='price'>".$itsprice."</div>";
}
}
echo "</div></div>";
}
}
上面的代码显示了最后一个子类别的价格,并且所有子类别都显示相同!
解决方案
看看在这里添加你的代码:
while($row=mysql_fetch_array($query)) {
$categories[$row['categoryname']][] = $row['name'];
$itsprice = $row['price'];
}
请注意,您将元素添加到$categories
数组中,但每次都覆盖$itsprice
var。
您应该添加相同的数组以便稍后提取。
考虑以下更改:
while($row=mysql_fetch_array($query)) {
$categories[$row['categoryname']][] = ["name" => $row['name'], "price" => $row['price']];;
}
后来做:
foreach($subCategories as $subCategory) {
echo "<div id='name'>" . $subCategory["name"] . "</div>
<div id='price'>" . $subCategory["price"] . "</div>";
}
希望这可以帮助!
推荐阅读
- java - 从二维数组中取最后一行第一项
- php - Laravel excel导出到excel表格
- java - 使用流将元素插入地图
- reporting-services - SSRS REPORT BUILDER,在一个 Tablix 中比较两个不同的数据集,表达式
- vb.net - 在VS2012中使用Visual Basic按降序对数组进行排序
- android - 如何关闭 NFC 声音
- android - 更新片段不起作用
- rust - 有没有办法从数组构造条件?
- python - 结构性地保存路径的目录、子目录和文件的变量
- c# - 我应该为 MATH.NET 中的 LogNormal 和正态分布使用哪些参数