如何使用PHP和MYSQL在一个表中显示一行,在另一个表中显示多个行

时间:2019-07-20 12:04:13

标签: php sql

我试图显示1个表行,然后在下面使用PHP和mySQL从另一个表中显示多个图像url(图像数量可能在1到20之间)。

我在SQL中使用join语句,所以我可以获得mycode列,这对两个表都是相同的。然后使用两个while循环显示数据。

$sql = "SELECT   possessions.id,possessions.description,images.url,possessions.mycode,possessions.category
FROM possessions
RIGHT JOIN images ON possessions.mycode=images.mycode
ORDER BY possessions.id";

if ($result = mysqli_query($con, $sql)) {
  while ($row = mysqli_fetch_row($result)) {
    $mycode = $row[3];
    $sql2 = "SELECT images.url FROM images WHERE images.mycode=$mycode";
    echo "</br></br>";
    echo "description = " . $row[1];
    echo "</br></br>";
    if ($result2 = mysqli_query($con, $sql2)) {
      while ($rows = mysqli_fetch_row($result2)) {
        echo $rows[0];
      }
    } else {
      echo "Error: " . $sql2 . "<br>" . $conn->error;
    }
  }
}

如您所见,结果显示了两次,在此示例的下面有两个URL,我只想在两个URL的下面显示一次描述。

description = Torch 18650

../upload/1563614178.jpg../upload/1563617891.jpg

description = Torch 18650

../upload/1563614178.jpg../upload/1563617891.jpg

我知道这样做的原因是sql语句中的联接,但是我需要运行它,以便可以从images表中获取mycode列以在第二个sql查询中使用。

SQL查询输出。

1   description url mycode  category    
6   Torch 18650     ../upload/1563614178.jpg    522     Electronics
6   Torch 18650     ../upload/1563617891.jpg    522     Electronics

0 个答案:

没有答案