Php 如何在单个while循环中从多个查询中检索值?
在给定的代码中,我需要打印从查询Php 如何在单个while循环中从多个查询中检索值?,php,mysql,Php,Mysql,在给定的代码中,我需要打印从查询$q1获得的列车名称,但在我提供的echo语句中,这不起作用。如何在给定代码中打印列车名 $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
$q1
获得的列车名称,但在我提供的echo语句中,这不起作用。如何在给定代码中打印列车名
$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>";
}
$q1=“从tbl_站选择st_名称,其中st_代码='$f';
$r1=mysql\U查询($q1);
而($row=mysql\u fetch\u数组($r1))
{
$trainname=$r1['st_name'];
}
$query=“选择A.列车号为AA,A.车站id为AB,A.到达为AC,A.部门为AD,
B.车站id作为AE,B.到达作为AF,B.部门作为AG从时间作为A,时间作为B,其中A.列车号
=B.列车号和A.车站号='f'和B.车站号='t';
$rs=mysql\u查询($query);
while($row=mysql\u fetch\u数组($rs))
{
回显“$row['AA']”.“$trainname.”.“$row['AC']”
“$row['AD'..”.$row['AE'..”.$row['AF'..”
.$row['AG']。“”;
}
您正在从结果对象检索数据,而应该从变量行获取数据
while($row = mysql_fetch_array($r1))
{
$trainname=$row['st_name'];
}
结果行分配给
$row
变量,而不是$r1
变量(即查询资源):
有两个问题:
- mysql_fetch_数组提供需要数字索引的结果(这适用于两个循环)
- 修复程序是
或$row=mysql\u fetch\u数组($r1,mysql\u ASSOC)
$row=mysql\u fetch\u ASSOC($r1)
- 修复程序是
- 您使用的是结果而不是行。(这适用于第一个循环)
- 是
$trainname=$row['st_name']代码>
- 是
但是你有明显的安全漏洞,所以你应该研究mysqli或pdo“代码不工作”是什么意思?我的意思是trainname没有在second while循环中打印..有没有办法在second while循环中打印trainname?顺便说一下,这个代码不安全,您应该研究mysqli或pdo作为替代。有没有办法在第二个while循环中打印trainname?您已经这样做了。只是最初您错误地为
$trainname
变量赋值;一旦您实现了上述功能,它就会起作用。mysql\u fetch\u array
在不指定第二个参数的情况下,以数字和关联数组的形式返回行:array mysql\u fetch\u array(resource$result[,int$result\u type=mysql\u both])
while($row = mysql_fetch_array($r1))
{
$trainname=$row['st_name'];
}