我想用数据库中的多维数组创建一个数组。数据库有 3 个表,一张用于车辆,一张用于损坏,一张用于损坏照片。
Table vehicle 有两列id 和name
表 damages 有四列 damagesID、vehicleID、damagesType 和 damagesDescription .
表 damagesPhotos 包含三列 damagesPhotoID 和 damagesID 以及 damagesPhotoUrl
我需要将三列组合成一个数组,如下所示:
$vehicle = array(
"id" => "somestring",
"name" => "somestring",
"damages" => array(
"damagesType" => "somestring",
"damagesDescription" => "somestring",
"photoOfDamages" => array(
"damagesPhotoUrl" => "somestring"
)
)
);
我的代码看起来像这样,但工作方式不正确。
$result = mysql_query( "SELECT * from vehicle v LEFT JOIN damages d ON v.id = d.vehicleID LEFT JOIN damagesPhotos p ON d.damagesID = p.damagesID WHERE d.damagesID = p.damagesID AND v.id = 1") or die(mysql_error());
$rowsResult = array();
while ($r = mysql_fetch_assoc($result))
{
$rowsResult [] = $r;
}
mysql_free_result($result);
echo json_encode($rowsResult);
...
/莫腾
最佳答案
因为这在 mysql 中是不可能的,所以我们可以编写一个脚本来提供有关特定车辆的所有信息,并使用该数据创建一个数组。 引用以下代码。
$query = "SELECT * from vehicle v LEFT JOIN damages d ON v.id = d.vehicleID LEFT JOIN damagesPhotos p ON d.damagesID = p.damagesID WHERE d.damagesID = p.damagesID AND v.id = 1";
$result = mysql_query($query);
$i = 0;
$vehicle = array();
while($row = mysql_fetch_array($result)){
$vehicle[$i] = array(
"id" => $row[id],
"name" => $row[name],
"damages" => array(
"damagesType" => $row[damagesType],
"damagesDescription" => $row[damagesDescription],
"photoOfDamages" => array(
"damagesPhotoUrl" => $row[damagesPhotoUrl]
)
)
);
$i++;
}
关于php - 如何通过 PHP 制作 MYSQL 数据的多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12210678/