Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để viết tập lệnh PHP bằng cách sử dụng MySQL JOINS bên trong nó để nối hai bảng MySQL?


Chúng ta có thể sử dụng cú pháp của MySQL JOIN để nối hai bảng vào hàm PHP - mysql_query () . Hàm này được sử dụng để thực thi lệnh SQL và sau đó là một hàm PHP khác - mysql_fetch_array () có thể được sử dụng để tìm nạp tất cả dữ liệu đã chọn.

Để minh họa điều đó, chúng tôi lấy ví dụ sau -

Ví dụ

Trong ví dụ này, chúng tôi đang sử dụng hai bảng MySQL có dữ liệu sau -

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)

Bây giờ, sau đây là một tập lệnh PHP sẽ nối các bảng để chọn tất cả các tác giả từ bảng tutorial_tbl và sẽ chọn số lượng hướng dẫn tương ứng 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);
?>