php - 如何通过 PHP 制作 MYSQL 数据的多维数组

标签 php mysql database multidimensional-array

我想用数据库中的多维数组创建一个数组。数据库有 3 个表,一张用于车辆,一张用于损坏,一张用于损坏照片。

Table vehicle 有两列idname

表 damages 有四列 damagesIDvehicleIDdamagesTypedamagesDescription .

表 damagesPhotos 包含三列 damagesPhotoIDdamagesID 以及 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/

相关文章:

php - 使用 > 符号拆分关联数组并将其显示在列表 ion php 中

php - UNION SELECTs - 循环?或单一查询?

java - Java 初学者的 oracle.jdbc.driver.OracleDriver 异常

mysql - 如何分解字符串多种颜色并使用MySql中的查询对其进行分组

database - ElasticSearch 异步发布

sql - 在 IBM netezza SQL 表中查找多列的不同组合时出错

php - 如何检查用户是否关闭窗口/浏览器/关闭计算机?

php - 拉拉维尔。取消链接 ('file path' ) : Permission Denied

php - 如何在mysql表中插入汉字?

php - 如何向 Blueimp Uploader 提交额外的表单数据?