2014-04-18 35 views
0

我有两个表 1)live_booking表 2)company_car表内部联接查询PHP MySQL的问题

公司汽车PK为car_id。预订表中有一个字段,其中car_id供用户输入。

问题是,当用户运行SQL查询时,如果预订表中没有car_id,它不会返回任何结果,但是如果car_id由用户提供到预订表中,那么SQL查询会显示所有结果。

我希望如果预订表中没有car_id,那么查询将从预订表中获取剩余的字段并将汽车字段显示为空白。

$bookingid = $_GET['id']; 

$result = mysqli_query($con, " 
SELECT 

live_booking.booking_id, live_booking.booking_time, live_booking.booking_date, live_booking.id_mobile,live_booking.reservation_time, live_booking.car_id, 

company_cars.car_driver, company_cars.car_make, company_cars.car_model, 

customer.eu_name 


FROM live_booking live_booking 
inner join customer customer on customer.id_mobile = live_booking.id_mobile 

inner join company_cars company_cars on company_cars.car_id = live_booking.car_id 

WHERE booking_id = $bookingid"); 
+0

删除sql server标记,你的php提示mysql。 – Mihai

+0

INNER JOIN查找两个数据库之间通用的记录。你可能想要一个LEFT JOIN。有关更多信息,请参阅http://stackoverflow.com/questions/5706437/whats-the-difference-between-inner-join-left-join-right-join-and-full-join。 LEFT JOIN会给你第一张表的所有记录,然后加入额外表中的字段。 – DragonYen

+0

为什么要将表格与car_id和id_mobile链接? – Nick

回答

0

可以使用mysqli_num_rows,如果在这里声明,如果没有结果,那么显示所有结果的其余

 $row_cnt = $result->num_rows; 
     if ($row_cnt == 0) 

     { 
     do this 
     } 
     else 
     { 
     do this 
     } 

的更多信息,请查看本 http://www.php.net/manual/en/mysqli-result.num-rows.php

加选择权标签:)