简体   繁体   中英

using JOIN two table but data did not display

I am using JOIN to join two tables:

   $sql = "SELECT * FROM employee JOIN employee_medical on employee = medical_notes";
   $data = mysql_query($sql , $testing);

and I display the table and the data:

   echo "<table border=2>
    <tr>
   <th>emp_id</th>
   <th>emp_name</th>
   <th>emp_ic</th>
   <th>emp_phone</th>
   <th>emp_address</th>
   <th>medical_notes</th>
   </tr>";


if($data = mysql_query($sql) or die ())
  {

while ( $record = mysql_fetch_array($data))
{

    echo"<tr>";
    echo "<td>" . $record['emp_id'] . "</td>";
    echo "<td>" . $record['emp_name'] . "</td>";
    echo "<td>" . $record['emp_ic'] . "</td>";
    echo "<td>" . $record['emp_phone'] . "</td>";
    echo "<td>" . $record['emp_address']. "</td>";
    echo "<td>" . $record['medical_notes']. "</td>";
    echo "</tr>";
}

};

Is there a problem in my PHP coding? My table is displayed but the data is not.

Not sure if there is any PHP related issue present but your query ON clause is weird. It should rather look like

SELECT e.* 
FROM employee e 
//Provide proper column names on which to join both the table 
JOIN employee_medical em on e.employeeid = em.medical_notes;

Fixes and solutions:

  • Use die(":: ".mysql_error($testing)); To output any SQL errors.

  • $data = mysql_query($sql) or die(":: ".mysql_error() ));

  • You need to define the <table>.<columns> in MySQL when you are referencing more than one table, for every single column referenced, Rahul has the correct answer. So:

$sql = "SELECT * FROM employee JOIN employee_medical on employee.employee = employee_medical.medical_notes";

See the <Table>.<column> structure? Always use that.

  • It is very good idea to get into the habit if declaring which type of JOIN you want to use. There are INNER, OUTER and some other Joins, please explore and clarify your code.

  • Update to MySQLi , with your reference already to the connection with $testing you are nearly there! Turn all your MySQL_ commands to mysqli_<whatever>($connection, $querty); (it's a little more complex, but only a little.

  • mysql_fetch_array might not return key values, depending on how your SQL is set up. so if the data does not appear but you're SURE it's there, then try using mysqli_fetch_assoc() instead.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM