我的项目涉及从数据库中获取航班信息。
我希望结果如下:
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,
等
谢谢!
答案 0 :(得分:0)
如果我猜,我会说$ b变量有问题。
您的输出似乎被写入两次:第二行中间的值“084001”看起来是一个条目的0840飞行时间,然后立即开始下一个条目作为日期。
我猜这个foreach循环两次,而不是一次,导致两个输出。
你能输出$ b变量吗?
echo "<pre>";
print_r($b);
echo "</pre>";