php mysql 查询显示不应该显示的数据



我有一个项目,涉及从数据库中获取航班信息。

我希望结果看起来像:


01 Nov 2017 - 东方航空 7601

从南安普敦出发,伊斯特利(SOU(于0840


但是,我的代码似乎以神秘的废话生活提出了以下内容,如下所示


01 Nov 2017 - 东方航空 7601

从 , (( 在 084001 Nov 2017 - 7601//这条线我不想要

从南安普敦出发,伊斯特利(SOU(于0840


$link = mysqli_connect('xxx', 'xxx', 'xxx', 'xxx' );
foreach ($flights as $b) {
$query = "SELECT * FROM  `airlines` WHERE  `iatacode` =  '$airline' LIMIT 0 , 30;"; 
$query .= "SELECT * FROM  `airports` WHERE  `Airport Code` =  '$depdest' LIMIT 0 , 30;"; 
/* Execute queries */
if (mysqli_multi_query($link, $query)) {
do {
/* store first result set */
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_array($result))

/* print results */    
{
$date=date_create($depdate);
echo "<b>" . date_format($date,"d M Y"). " - ". $row['airlinename']." ".$flightno. "</b><br/>";

echo "Departing from " .$row['City Name'].", ".$row['Airport Name']." (".$row['Airport Code'].") at " . $deptime;
}
mysqli_free_result($result);
}   
} while (mysqli_next_result($link));
}

谁能看出我做错了什么?

数据库表如下

表1 - 名称"机场">

机场标识 城市名称 机场代码 机场名称 国家名称 国家缩写 世界区号

1, 108 英里牧场,ZMH , 108 英里牧场 , 加拿大, 加利福尼亚州, 906,

2, 亚琛,AAH 亚琛/梅尔茨布鲁克, 德国, DE, 429,

3, 亚琛, ZIU, 铁路, 德国, DE, 429,

4, 奥尔堡,AAL, 奥尔堡, 丹麦, 丹麦, 419,

表2 - 名称"航空公司">

航空公司编号, 国际航空运输协会, 航空公司名称

1, 0A, 琥珀色空气,

2, 0B, 蓝色空气,

3, 0C, IBL航空,

谢谢!

如果我猜,我会说$b变量有问题。

您的输出似乎被写入了两次:第二行中间的值"084001"看起来是一个条目的 0840 飞行时间,然后立即开始下一个条目作为日期。

我猜 foreach 循环了两次,而不是一次,导致两个输出。

你能输出$b变量吗?

echo "<pre>";
print_r($b);
echo "</pre>";

最新更新