簡體   English   中英

PHP中的MYSQL表聯接

[英]MYSQL table join in PHP

我已經搜索了我的問題,但似乎沒有一個可以滿足我的特殊需求。 這是一個簡單的表聯接,但是我嘗試過的每件事都失敗了。 也許你可以幫忙。 注意:POSTS中的所有行都具有post_id,但CALENDAR中並非所有的post_id相關,即,並非所有的帖子都具有日歷條目。 我在PHP中使用MYSQL,而不是MYSQLi。

POST_CAT- post_id,cat_id POSTS- post_id,標題,描述CALENDAR- post_id,on_date,to_date

目前,我通過多對多選擇找到了相關的post_id,然后使用一系列for循環從單個表中輸出。 這可行。 但我需要在一個數組中包含相關post_id的日歷條目:

mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("adamsmap_db") or die(mysql_error());

if (isset($_POST['activities'])) {

$post_id = mysql_query("SELECT post_id FROM post_cat WHERE cat_id = '1'");
    while ($row = mysql_fetch_array($post_id, MYSQL_NUM)) {

    for ($i=0;$i < count($row); $i++) {

$output = mysql_query("SELECT user_id, title, description FROM posts WHERE post_id='$row[$i]'");
    while ($rowoutput = mysql_fetch_array($output, MYSQL_NUM)) {

    for($i=0;$i < count($rowoutput);$i++) {

echo $rowoutput[$i]."&nbsp";

}

echo"<br /> <br />";

}}}}    

此查詢將復制您已編碼的業務邏輯和日歷信息:

SELECT 
    zpc.ost_id, p.user_id, p.title, p.description, c.*
FROM Z_post_cat zpc
INNER JOIN posts p ON zpc.post_id = p.post_id 
INNER JOIN calendar c ON c.post_id = = p.post_id
WHERE zpc.cat_id = '1'

如果要包括沒有帖子的類別,請使用LEFT JOIN而不是INNER JOIN。

另外,出於安全考慮,建議您遷移到PDO或Mysqli而不是mysql。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM