如何检索与数组中的查询关联的其他值?

时间:2019-07-19 13:56:40

标签: php html mysql arrays for-loop

以下代码对我有用,它可以获取类别的所有子类别,但我也想在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>";
    }
}

上面的代码显示了最后一个子类别的价格,并且对所有子类别都显示相同的价格!

1 个答案:

答案 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']];;
}

希望这会有所帮助!