我有这个SQL查询
$query="SELECT * FROM FLIGHTTABLE INNER JOIN AirplaneTable ON FLIGHTTABLE.AIRPLANEID = AirplaneTable.AIRPLANEID
INNER JOIN AIRPORTTABLE from_airport ON FLIGHTTABLE.AIRPORTDEPARTURE = from_airport.AIRPORTID
INNER JOIN AIRPORTTABLE to_airport ON FLIGHTTABLE.AIRPORTARRIVAL = to_airport.AIRPORTID
INNER JOIN ROUTETABLE route ON FLIGHTTABLE.AIRPORTARRIVAL = route.TOAIRPORTID && FLIGHTTABLE.AIRPORTDEPARTURE = route.FROMAIRPORTID
WHERE $dateofdeparture_update $dateofarrival_update $airportofdeparture_update $airportofarrival_update $id_update$seats_update $status_update;";
$res = mysql_query($query, GetMyConnection() );
if (!mysql_num_rows($res))
{
if ($id)
{
$results = array('success' => false, 'error' => 'Este voo não foi encontrado');
} else {
$results = array('success' => false, 'error' => 'Nenhum voo foi encontrado');
}
}
else
{
while($row = mysql_fetch_array($res))
{
//echo $row;
$data[] = array(
'id' => $row['FLIGHTID'],
'status' => $row['FLIGHTSTATUS'],
'reason' => $row['REASON'],
'airplane' => array(
'id' => $row['AIRPLANEID'],
'name' => $row['NAME']
),
'departure' => $row['DATEOFDEPARTURE'],
'arrival' => $row['DATEOFARRIVAL'],
'fromairport' => $row['AIRPORTDEPARTURE'],
'fromairportname' => $row['NAMEOFAIRPORT'],
'toairport' => $row['AIRPORTARRIVAL'],
'toairportname' => $row['NAMEOFAIRPORT'],
'price' => $row['PRICE'],
'availableseats' => $row['AVAILABLESEATS'],
'price' => $row['PRICE'],
'photo' => $row['PHOTO'],
);
}
$results = array('success' => true, 'data' => $data);
虽然'fromairportname'
和'toairportname'
应该具有不同的值,但它们具有相同的值,因为$row['NAMEOFAIRPORT']
具有相同的值。如何获得第二个内连接的$row['NAMEOFAIRPORT']
,以便它们显示实际的出发和到达数据?
由于
答案 0 :(得分:1)
$query="SELECT FLIGHTTABLE.FLIGHTID,
FLIGHTSTATUS,
REASON,
FLIGHTTABLE.AIRPLANEID,
DATEOFDEPARTURE,
DATEOFARRIVAL,
AIRPORTDEPARTURE,
from_airport.NAMEOFAIRPORT AS TONAMEOFAIRPORT,
AIRPORTARRIVAL,
to_airport.NAMEOFAIRPORT AS FROMNAMEOFAIRPORT,
重命名像from_airport.NAMEOFAIRPORT AS TONAMEOFAIRPORT
这样的列解决了这个问题。
全部感谢您的帮助
答案 1 :(得分:0)
而不是选择*'您必须为查询中的每一列命名。然后你可以将它们别名为PHP独有/可用的东西。
SELECT FLIGHTID, FLIGHTSTATUS, REASON, ...,
AIRPORTDEPARTURE.NAMEOFAIRPORT fromAirport, AIRPORTARRIVAL.NAMEOFAIRPORT toAirport, ...
FROM FLIGHTTABLE
等等