2012-11-16 43 views
0

我想显示来自phpMyadmin数据库的两个表中的数据。 我有一个网站,其中有一个表单,您可以放置​​要查找的信息,然后应该从数据库中的两个表中显示此信息。我知道我必须使用SQL JOIN,我尝试了不同的方法,并且无法弄清楚。我感谢所有帮助使用PHP显示来自两个表的数据

这里是我的PHP代码:

AND INBOUND_FLIGHT.AIRCRAFT_FROM = '$from'AND 

AND INBOUND_FLIGHT.AIRCRAFT_FROM = '$from' AND 

回答

1

我:

<?php 
//connect to database: 
$con = mysql_connect("SERVER", "LOGIN", "PASS") or die("Connection Failed"); 
mysql_select_db("TABLE", $con) or die ("Connection Failed"); 

//create a PHP variable to hold the value from HTML form 
$from = $_POST['arrival']; 
$to = $_POST['destination']; 
$time = $_POST['time']; 
$tailnumber = $_POST['tailnumber']; 

$error_status = false; 

// validating input 
if (empty($_POST['arrival'])){ 
echo "Please enter the origin."; 
$error_status = true; 
} 
if (empty($_POST['destination'])){ 
echo "</br></br> Please enter the destination."; 
$error_status = true; 
} 
if (empty($_POST['time'])){ 
echo "</br></br> Please enter the date."; 
$error_status = true; 
} 
if (empty($_POST['tailnumber'])){ 
echo "</br></br> Please enter the tail number."; 
$error_status = true; 
} 

//create the query for selecting all the records which equal to the value from the form 
if(!$error_status) { 
$query = "SELECT * 
FROM INBOUND_FLIGHT 
INNER JOIN OUTBOUND_FLIGHT 
ON INBOUND_FLIGHT.TAIL_NUMBER = OUTBOUND_FLIGHT.TAIL_NUMBER 
WHERE INBOUND_FLIGHT.ARRIVAL_TIME = '$time' AND INBOUND_FLIGHT.TAIL_NUMBER = '$tailnumber' AND INBOUND_FLIGHT.AIRCRAFT_FROM = '$from'AND OUTBOUND_FLIGHT.AIRCRAFT_TO = '$to'"; 

//run query 
$result = mysql_query($query); 
// creating a table 
echo "<table border='1'> 
<tr> 
<th>ARRIVAL TIME</th> 
<th>AIRCRAFT TYPE</th> 
<th>TAIL NUMBER</th> 
<th>CREW NAME</th> 
<th>ORIGIN</th> 
<th>DESTINATION</th> 
</tr>"; 

//Print the record that matches the criteria of the query 
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
echo "<tr>"; 
echo "<td>" . $row['INBOUND_FLIGHT.ARRIVAL_TIME'] . "</td>"; 
echo "<td>" . $row['INBOUND_FLIGHT.AIRCRAFT_TYPE' ] . "</td>"; 
echo "<td>" . $row['INBOUND_FLIGHT.TAIL_NUMBER'] . "</td>"; 
echo "<td>" . $row['INBOUND_FLIGHT.CREW_NAME'] . "</td>"; 
echo "<td>" . $row['INBOUND_FLIGHT.AIRCRAFT_FROM'] . "</td>"; 
echo "<td>" . $row['OUTBOUND_FLIGHT.AIRCRAFT_TO'] . "</td>"; 
}} 
//close the connection 
mysql_close($con); 
echo "</table>"; 
?> 
+0

omg我们是多么愚蠢....只是一个简单的错误,并没有想出它,如果你认为我们的答案比你可以upvote有帮助,你可以接受正确的anwer –

0

在下面的查询部分将一个空间'$from'后它工作。

我用

SELECT * 
FROM INBOUND_FLIGHT, OUTBOUND_FLIGHT 
... 

再变回波显示

echo "<td>" . $row['ARRIVAL_TIME'] . "</td>"; 
... 
... 
+0

我没有把空间,但它仍然无法正常工作。 – Tomala

+0

@Tomala:你什么意思是“没有工作”?它是否给出了一些错误,或者您得到的结果与预期不同。另外什么是'ARRIVAL_TIME'的数据类型和你通过$ time的值是多少? –

+0

我没有收到任何错误消息。 我得到的是一张空白表格,里面没有数据,但是数据库中有数据要显示。 我通过$ time传递“date”类型。 它曾经是DATETIME,但我已将其更改为仅DATE,但我还没有将ARRIVAL_TIME更改为ARRIVAL_DATE。但是,我在“到达时间”表单中键入“2012-11-13”以获取信息,因此它可以正常工作。 – Tomala

相关问题