以下代码对我有用,它可以获取类别的所有子类别,但我也想在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>";
}
}
上面的代码显示了最后一个子类别的价格,并且对所有子类别都显示相同的价格!
答案 0 :(得分:0)
请在此处添加您的代码:
use Lib\Importer;
$importer = new Importer;
请注意,您将元素添加到while($row=mysql_fetch_array($query)) {
$categories[$row['categoryname']][] = $row['name'];
$itsprice = $row['price'];
}
数组中,但是每次$categories
变量时都将其覆盖。
您应该添加相同的数组以供以后提取。
请考虑以下更改:
$itsprice
然后做:
while($row=mysql_fetch_array($query)) {
$categories[$row['categoryname']][] = ["name" => $row['name'], "price" => $row['price']];;
}
希望这会有所帮助!