gpt4 book ai didi

PHP:使用 MySQL 链接两个表以正确显示数据

转载 作者:行者123 更新时间:2023-11-29 13:02:24 25 4
gpt4 key购买 nike

我有两个表以与我想要的方式不同的方式连接,我将尽力解释我正在寻找的内容,以及我迄今为止所取得的成就。

我正在寻找什么:首先,我有一个表 objects_price 和一个表 materials。这些表格如下所示:

objects_price:

table objects_price

Material :

table materials

好的,我有一些物体,可以是椅子、 table 或任何你能想象到的家具。所有对象都连接到第三个表,其中包含有关该对象的信息。每个物体都需要某种 Material 才能制作。正如您在 objects_price 表中看到的,id 为 1 的物体需要 47 个等于 1 的 Material 。即 Oak Log正如您在materials 表中看到的那样。

id为2的物体需要两种 Material , Material 2和 Material 3。它需要20个石头和30个桦木

为了让一切更加清晰,下面是一张显示我刚刚解释的内容的图像:

displaying what I just said above

到目前为止,我有两个查询,其中一个查询没有执行我想要的操作,特别是因为我使用数组来显示 Material 和数量,但我的代码所做的是它显示所有所有对象中的 Material ,现在看起来像这样:

what it is like now

问题在于这个查询及其创建数组的方式:

$query = 'SELECT objects_price.object_id, materials.material_id, materials.name, material_amount
FROM objects_price
LEFT JOIN materials USING(material_id)';
$result = $mysqli->query($query);

$arr = array();
while($row = $result->fetch_assoc()) {
$arr[$row['name']][] = $row['material_amount'];
}

以及我为物体提供相应 Material 的方式:

foreach($arr as $name => $objects) {
?>
<p><?php echo $name; ?><i style="float:right;"><?php foreach($objects as $material_amount) { echo $material_amount; } ?></i></p>
<?php
}

我希望我已经说清楚了,如果您希望我提供更多代码、更多图像或解释或类似内容,请告诉我。非常感谢任何帮助、意见或建议。感谢您抽出时间。

最佳答案

    while($row = $result->fetch_assoc()) {
$arr[$row['object_id']][$row['name']] = $row['material_amount'];
}

...

foreach($arr 作为 $key){

$material_array = $key;

foreach ($material_array as $k => $v){
echo "<p>$k | $v</p>";
}

它将正确显示 Material 名称和数量,但没有对象本身的名称。

}

关于PHP:使用 MySQL 链接两个表以正确显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23162448/

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