Php mysql查询显示它不应该的数据

时间:2017-08-27 21:06:47

标签: php mysql sql

我的项目涉及从数据库中获取航班信息。

我希望结果如下:

2017年11月1日 - Eastern Airways 7601

于0840离开南伊普顿,伊斯特利(SOU)

然而,我的代码似乎在下面提出了一个神秘的废话,如下所示

2017年11月1日 - Eastern Airways 7601

离开,()于2017年11月084001 - 7601 // 此行我不想

于0840离开南伊普顿,伊斯特利(SOU)

$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 - 姓名&#34;机场&#34;

机场ID城市名称机场代码机场名称国家/地区名称国家/地区简称。世界区号

1,108 Mile Ranch,ZMH,108 Mile Ranch,Canada,CA,906,

2,Aachen,AAH Aachen / Merzbruck,德国,DE,429,

3,Aachen,ZIU,Railway,Germany,DE,429,

4,Aalborg,AAL,Aalborg,Denmark,DK,419,

表2 - 名称&#34;航空公司&#34;

航空公司ID,Iata,航空公司名称

1,0A,Amber Air,

2,0B,Blue Air,

3,0C,IBL Aviation,

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

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

你能输出$ b变量吗?

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