如何编写使用MySQL JOIN的PHP脚本来连接两个MySQL表?
我们可以使用MySQL JOIN的语法将两个表连接到PHP函数– mysql_query() 中。此函数用于执行SQL命令,稍后使用另一个PHP函数– mysql_fetch_array() 可以用于获取所有选择的数据。
为了说明这一点,我们有以下示例−
阅读更多:MySQL 教程
例子
在本示例中,我们使用两个MySQL表,它们具有以下数据−
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)
现在,以下是将表连接起来以从表中选择所有作者的PHP脚本 tutorials_tbl 并选取相应数量的教程在 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
";
mysql_close($conn);
?>