【问题标题】:Displaying data from two tables using PHP使用 PHP 显示来自两个表的数据
【发布时间】:2012-11-16 17:23:24
【问题描述】:

我正在尝试显示来自 phpMyadmin 数据库的两个表中的数据。 我有一个带有表格的网站,您可以在其中放置您要查找的信息,然后应该从数据库中的两个表中显示此信息。我知道我必须使用 SQL JOIN,我尝试了不同的方法但无法解决这个问题。我将不胜感激任何帮助

这是我的 php 代码:

    <?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>";
?>

【问题讨论】:

    标签: php sql database phpmyadmin


    【解决方案1】:

    我让它工作了。

    我用过

    SELECT *
    FROM INBOUND_FLIGHT, OUTBOUND_FLIGHT
    ...
    

    然后改变回显显示

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

    【讨论】:

    • 天哪,我们是多么愚蠢......只是一个简单的错误,如果您认为我们的回答比您可以投票更有帮助并且您可以接受正确的回答,那么您就没有弄清楚
    【解决方案2】:

    在下面的查询部分中,在 '$from' 之后添加一个空格:

        AND INBOUND_FLIGHT.AIRCRAFT_FROM = '$from'AND
    

    作为

        AND INBOUND_FLIGHT.AIRCRAFT_FROM = '$from' AND
    

    【讨论】:

    • @Tomala:“没用”是什么意思?它是否给出了一些错误,或者您得到的结果与预期不同。还有ARRIVAL_TIME的数据类型是什么,你通过$time的值是多少?
    • 我没有收到任何错误消息。我得到的是一个空白表,里面没有数据,但是数据库中有数据要显示。我通过 $time 传递“日期”类型。它曾经是 DATETIME,但我已将其更改为 DATE,但我尚未将 ARRIVAL_TIME 更改为 ARRIVAL_DATE。但是我在到达时间表格中输入“2012-11-13”来获取信息,所以它可以工作。
    猜你喜欢
    • 2014-10-15
    • 2016-06-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多