当我尝试在内部执行第二个选择查询时,我试图从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>";
路线表
巴士表
结果
答案 0 :(得分:1)
您可以继续使用您的解决方案,但为了提高效率,您不应该在循环中执行SELECT,您应该使用SQL JOIN。
您的查询应该加入路线字段上的两个表:
SELECT * FROM buses b
INNER JOIN routes r ON b.Route = r.Route;
循环内不需要额外的查询,因为您可以从此查询中访问fromcity。您可能希望专门声明SELECT中的字段,而不是使用*
。