在php中使用while循环中的Select Query

时间:2016-05-05 14:14:09

标签: php html mysql

当我尝试在内部执行第二个选择查询时,我试图从2个表中打印一些数据而在循环中它没有显示任何结果
我的问题是

$query=mysql_query("SELECT * FROM buses");
echo "<table border='1'>";
echo "<tr>";
echo "<td>Sno</td>";
echo "<td>Route #</td>";
echo "<td>Bus _Type</td>";
echo "<td>Timing</td>";
echo "<td>From</td>";
echo "</tr>";
while($row=mysql_fetch_array($query)){
echo "<tr>";
echo "<td>"."<center>".$row['sno']."</center>"."</td>";
echo "<td>"."<center>".$row['Route']."</center>"."</td>";
echo "<td>"."<center>".$row['Bus_type']."</center>"."</td>";
echo "<td>"."<center>".substr($row['Timing'],0,5)."</center>"."</td>";
$route=$row['Route'];
$query2=mysql_query("SELECT fromcity FROM routes WHERE Route= '$route' ");
$row2=mysql_fetch_array($query2);
echo "<td>"."<center>".$row2['fromcity']."</center>"."</td>";

路线表

enter image description here

巴士表

enter image description here

结果

Not showing Data Of From city Field

1 个答案:

答案 0 :(得分:1)

您可以继续使用您的解决方案,但为了提高效率,您不应该在循环中执行SELECT,您应该使用SQL JOIN。

您的查询应该加入路线字段上的两个表:

SELECT * FROM buses b
INNER JOIN routes r ON b.Route = r.Route;

循环内不需要额外的查询,因为您可以从此查询中访问fromcity。您可能希望专门声明SELECT中的字段,而不是使用*