如何在单个while循环中从多个查询中检索值?

时间:2014-01-18 17:58:08

标签: php mysql

在给定的代码中,我需要打印从查询$q1获得的train-name,但是在我提供的echo语句中,这不起作用。如何在给定代码中打印 trainname

$q1="SELECT st_name FROM tbl_station where st_code='$f'";

$r1=mysql_query($q1);

while($row = mysql_fetch_array($r1)) 

{

$trainname=$r1['st_name'];

}   

$query="SELECT A.train_no AS AA, A.station_id AS AB, A.arrival AS AC, A.dept AS AD, 

B.station_id AS AE, B.arrival AS AF, B.dept AS AG FROM TIME AS A,TIME AS B WHERE A.train_no 

= B.train_no AND A.station_id ='$f' AND B.station_id ='$t'";

$rs=mysql_query($query);

while($row = mysql_fetch_array($rs)) 

{

echo "<tr><td>".$row['AA']."</td> <td>".$trainname."</td> <td>" .$row['AC'] ."</td> 

<td>".$row['AD'] . "</td><td>".$row['AE'] . "</td><td>".$row['AF'] . "</td><td>" 

.$row['AG']. "</td><td>"."<a href='Reservation.php'>Click Me</a><tr><td>";

}

3 个答案:

答案 0 :(得分:2)

结果行分配给$row变量,而不是$r1变量(查询资源):

while($row = mysql_fetch_array($r1)) 
{  
  $trainname=$row['st_name'];   
} 

答案 1 :(得分:1)

您正在从结果对象中检索数据,而应从变量行

中获取数据
while($row = mysql_fetch_array($r1))

    {

    $trainname=$row['st_name'];

    }

答案 2 :(得分:0)

有两个问题:

  • mysql_fetch_array给出需要数字索引的结果(这适用于两个循环
    • 此修复程序为$row = mysql_fetch_array($r1, MYSQL_ASSOC)$row = mysql_fetch_assoc($r1)
  • 您正在使用结果而不是行。 (这适用于第一个循环
    • $trainname=$row['st_name'];

但是你有明显的安全漏洞,所以你应该研究mysqli或pdo