gpt4 book ai didi

php - Mysql select 多个查询彼此内部

转载 作者:行者123 更新时间:2023-11-29 12:14:55 26 4
gpt4 key购买 nike

我在使用先前选择的数据从数据库中选择数据时遇到一些问题。我想做的是。首先,我让 mysql 从表 vechiles 中选择数据库中的所有车辆。我回应它们,并在 while 循环内尝试通过选择带有 vechile_id 的图片来从不同的表中选择车辆的图片:

现在我的第一个问题是。这是正确的做法吗?我认为一定有一种更简洁的方法,但我找不到方法。

    <?php
$sql = "SELECT id, brand FROM vechiles";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {

$sql1 = "SELECT * FROM fotos WHERE vechiles_id =". $row['id'];
$result1 = $conn->query($sql1);

echo '<li><p class="title">'. $row['brand'] .'</p>
<p class="type">type: 2387</p>
<p class="ez">ez: 1987</p>';

if ($result1->num_rows > 0) {
// output data of each row
while($row1 = $result1->fetch_assoc()) {
echo '<img src="admin/'. $row1['url'] .'" atl="tractor 1"/>';
}}else{
echo "there are no pictures";
}

echo '<div class="info">
<p class="prijs">Prijs: 1800,- EX BTW</p>
<p class="msg"> Prijzen onder voorgehoud</p>
</div>
<a class="button" href="#">Meer info</a></li>';
}
} else {
echo "0 results";
}
$conn->close();
?>

不,上面的示例工作正常,但我只想选择第一张图片而不是所有上传的图片。所以对于这段代码:

 $sql1 = "SELECT * FROM fotos WHERE voertuig_id =". $row['id'];

我添加了

 $sql1 = "SELECT TOP 1 * FROM fotos WHERE voertuig_id =". $row['id'];

我也尝试过

 $sql1 = "SELECT * FROM fotos WHERE voertuig_id =". $row['id'] . "LIMIT 1";

但是当我这样做时,它突然说没有图片。我做错了什么!

感谢所有的帮助!

最佳答案

您不需要为每辆车循环并执行另一个查询,您可以通过简单的联接来完成。

select *
from vehicles v
left join fotos f
on f.voertuig_id = v.id;

如果该车辆没有匹配的照片,则返回的数组中将为空值。

这会将你的 php 更改为如下所示:

$last_vehicle = null;
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
if($row['brand'] != $last_vehicle) {
if($last_vehicle != null) {
echo '<div class="info">
<p class="prijs">Prijs: 1800,- EX BTW</p>
<p class="msg"> Prijzen onder voorgehoud</p>
</div>
<a class="button" href="#">Meer info</a></li>';
}
echo '<li><p class="title">'. $row['brand'] .'</p>
<p class="type">type: 2387</p>
<p class="ez">ez: 1987</p>';
$last_vehicle = $row['brand'];
if ($row['url'] != null) {
echo '<img src="admin/'. $row['url'] .'" atl="tractor 1"/>';
}
else {
echo "there are no pictures";
}
}
}
}
else {
echo "0 results";
}

关于php - Mysql select 多个查询彼此内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29985013/

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