我的查询有点问题,我的查询是:
SELECT * FROM tkursi WHERE tkursi.no_kursi NOT IN
(SELECT no_kursi FROM tpesanantiket LEFT join tpenjadwalantiket ON
tpenjadwalantiket.id_perjalanan=tpesanantiket.id_perjalanan LEFT JOIN tbus ON
tbus.id_bus=tpenjadwalantiket.id_bus WHERE tbus.id_bus='$bus' AND
tpesanantiket.id_perjalanan='$trip') ORDER BY no_kursi ASC
此查询显示no_kursi,其中某些数字不显示所订购的状态。
我想在列表no_kursi中更改no_kursi,其中一个状态订单仍然显示但是有评论订购,其他颜色背景或无法点击。
我尝试在里面使用,但它不能正常工作。
<table class=" table table-bordered table-striped">
<?php
$s = mysqli_query($koneksidb, "SELECT * FROM tkursi ORDER BY no_kursi ASC");
while ($kolomData = mysqli_fetch_array($s)) {
$x = mysqli_query($koneksidb, "SELECT no_kursi FROM tpesanantiket
LEFT join tpenjadwalantiket ON tpenjadwalantiket.id_perjalanan=tpesanantiket.id_perjalanan
LEFT JOIN tbus ON tbus.id_bus=tpenjadwalantiket.id_bus
WHERE tbus.id_bus='$Bus' AND tpesanantiket.id_perjalanan='$Trip'
GROUP BY no_kursi");
while ($kolomx = mysqli_fetch_array($x)) {
?>
<tr>
<td width="200"> <input type="radio" name="tambah3" value="<?php echo $kolomData['no_kursi']; ?>"
<?php echo ($data7==$kolomData['no_kursi']) ? "checked" : "" ; ?>/>
<label class="inline" for="<?php echo $kolomData['no_kursi']; ?>">
<?php echo $kolomData['no_kursi']; ?>
<?php if ($kolomData['no_kursi']==$kolomx['no_kursi']) {
?> ordered
<?php } ?>
</label> </td>
</tr>
<?php
}
}?>
结果在一些no_kursi中排序,但它循环太多了。
已编辑数据库显示:
$ s:no_kursi
001
002
003
004
005
006
007
......
043
$ x:no_kursi
005
006
结果:
no_kursi
001
001
002
002
003
003
004
004
005订购了
005
006订购了
006
007
007
......
043
043
结果循环多达$ x结果。
答案 0 :(得分:1)
您可以更改查询..
SELECT tkursi。*,CASE WHEN q.no_tkursi is NULL,那么0 ELSE 1结束AS is_orderer FROM tkursi LEFT JOIN(选择no_tkursi FROM tpesanantiket LEFT join tpenjadwalantiket ON tpenjadwalantiket.id_perjalanan = tpesanantiket.id_perjalanan LEFT JOIN tbus ON tbus.id_bus = tpenjadwalantiket.id_bus WHERE tbus.id_bus ='$ Bus'AND tpesanantiket.id_perjalanan ='$ Trip')AS q ON q.no_tkursi = tkursi.no_tkursi ORDER BY tkursi.no_tkursi
并且您有一个独特的查询。
这个查询可能更好。没有subquerys。但我不知道你的数据库结构。
你的结果应该是......
no_kursi | .... | is_orderer
1 | .... | 0
...
5 | .... | 1
6 | .... | 1
7 | .... | 0