我在使用之前选择的数据从数据库中选择数据时遇到了一些麻烦。我想做的是。首先,我让mysql从表vechiles中选择我数据库中的所有vechiles。我回应它们并在while循环中我尝试通过选择具有vechile_id的图片从不同的表中为vechile选择图片:
现在我的第一个问题是。这是正确的方法吗?我认为必须有一个更整洁的方式,但我无法找到。
$sql1 = "SELECT * FROM fotos WHERE voertuig_id =". $row['id'];
Noe以上示例工作正常,但我只想选择第一张图片而不是所有上传的图片。 所以对于这段代码:
$sql1 = "SELECT TOP 1 * FROM fotos WHERE voertuig_id =". $row['id'];
我添加了
$sql1 = "SELECT * FROM fotos WHERE voertuig_id =". $row['id'] . "LIMIT 1";
我也试过
<div class="panel panel-info">
<div class="panel-heading">
<i class="fa fa-list-ul"></i> Sipariş Listeniz
</div>
<div class="panel-body">
<div id="cart" data-bind="foreach: Currencies">
<div class="">
<span data-bind="text: Currency"></span>
<table class=" table table-striped" data-bind="foreach: Items">
<tr>
<td data-bind="text: Code"></td>
<td data-bind="text: Amount"></td>
<td data-bind="text: Price"></td>
<td data-bind="text: LineTotal"></td>
</tr>
</table>
</div>
</div>
</div>
<div class="panel-footer">
</div>
</div>
但是当我这样做时突然说没有照片。我做错了什么!
感谢所有的帮助!
答案 0 :(得分: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";
}