Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Script PHP JOIN 2 bảng MySQL (mysql_query + mysql_fetch_array)

Dùng cú pháp JOIN MySQL trong mysql_query(), sau đó mysql_fetch_array() lấy dữ liệu.

Ví dụ

Hai bảng tcount_tbl và tutorials_tbl:

mysql> SELECT * FROM tcount_tbl;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
| mahran          |             20 |
| mahnaz          |           NULL |
| Jen             |           NULL |
| Gill            |             20 |
| John Poul       |              1 |
| Sanjay          |              1 |
+-----------------+----------------+
6 rows in set (0.01 sec)

mysql> SELECT * from tutorials_tbl;
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|           1 | Learn PHP      | John Poul       | 2007-05-24      |
|           2 | Learn MySQL    | Abdul S         | 2007-05-24      |
|           3 | JAVA Tutorial  | Sanjay          | 2007-05-06      |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.00 sec)

Script PHP JOIN lấy tác giả từ tutorials_tbl và số bài từ tcount_tbl:

<?php
  $dbhost = 'localhost:3036';
  $dbuser = 'root';
  $dbpass = 'rootpassword';
  $conn = mysql_connect($dbhost, $dbuser, $dbpass);
  if(! $conn ) {
    die('Could not connect: ' . mysql_error());
  }
  $sql = 'SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count FROM tutorials_tbl a, tcount_tbl b WHERE a.tutorial_author = b.tutorial_author';
  mysql_select_db('TUTORIALS');
  $retval = mysql_query( $sql, $conn );
  if(! $retval ) {
    die('Could not get data: ' . mysql_error());
  }
  while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
    echo "Author:{$row['tutorial_author']} <br> ".
         "Count: {$row['tutorial_count']} <br> ".
         "Tutorial ID: {$row['tutorial_id']} <br> ".
         "--------------------------------<br>";
  }
  echo "Fetched data successfully\n";
  mysql_close($conn);
?>

Lưu ý: dùng mysqli/PDO với prepared statements, JOIN rõ ràng hơn (INNER JOIN ... ON).