我设置了一个数据库表,用于存储某个城市的航类信息,其中包含 Destination_ID、Destination_City、Airline、Leaving_From 和 Arriving 列。
我运行以下查询:
$name = $_GET['name'];
$dbQuery = $db->prepare("SELECT * FROM DESTINATIONS
WHERE destination_City = '$name' ");
$dbQuery->execute();
$airlines= array();
while ($dbRow = $dbQuery->fetch(PDO::FETCH_ASSOC)){
$Airlines[] = $dbRow['Airline']; }
foreach( $Airlines as $Airline )
{
$dbQuery = $db->prepare("SELECT * FROM DESTINATIONS
WHERE Airline = '$Airline' AND Destination_City = '$name' ");
$dbQuery->execute();
while ($dbRow = $dbQuery->fetch(PDO::FETCH_ASSOC)){
$Arriving = $dbRow ['Arriving'];
$Leaving_From = $dbRow ['Leaving_From'] ; }
echo "$Leaving_From to $Arriving" ;
}
这将返回两个具有相同值的结果,除了到达的列不同之外。但是,在打印时,它会将第二行打印两次,而不是打印两行。
我不确定它为什么这样做。有人可以帮忙吗?
最佳答案
dbQuery 每次迭代都会获取一个结果集,因此您需要将 echo 代码放入 while 循环中,以便在每次迭代时打印结果。相应地修改您的代码以获得所需的结果。
关于php - SQL 打印出行两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28454639/