-3

我是初学者,以下是我的 sql 代码。

select temp1.service_number,temp1.serial_number, temp1.start_datetime, temp1.plate_number, text , temp1.staff_id
from (select t.service_number,t.serial_number, start_datetime, plate_number, staff_id
from trip t
where t.staff_id = 3685
and start_datetime between '2012-01-01' and '2013-12-01') as temp1
left outer join 
(select r.service_number, r.serial_number, r.text
from remark r) as temp2
on temp1.service_number = temp2.service_number and temp1.serial_number = temp2.serial_number;

当我运行它时,它返回 7 行。但是,当我在 php 中使用该代码时,

$querytrip = "select temp1.service_number,temp1.serial_number, temp1.start_datetime, temp1.plate_number, temp2.text from (select t.service_number,t.serial_number, start_datetime, plate_number, staff_id from trip t where t.staff_id = '$staffid' and start_datetime between '$sdate' and '$edate') as temp1 left outer join (select r.service_number, r.serial_number, r.text from remark r) as temp2 on temp1.service_number = temp2.service_number and temp1.serial_number = temp2.serial_number";
            $resulttrip = mysql_query($querytrip);

count($resulttrip) 返回 1。

请帮我!

4

1 回答 1

1

要获取行数,您需要mysql_num_rows($resulttrip),而不是count($resulttrip)。要遍历每一行,您可以mysql_fetch_assoc这样使用:

while ($result = mysql_fetch_assoc($resulttrip))
{
  echo $result['service_number'];
}

您也可以使用mysql_fetch_arrayandmysql_fetch_row而不是mysql_fetch_assoc,

尽管您应该使用MySQL Improved Extensionor PDO

于 2013-03-30T15:37:02.477 回答