簡體   English   中英

您如何加入(爆破)MySQL陣列?

[英]How do you join (implode) a MySQL Array?

implode()函數適用於普通數組,但不適用於使用mysql_fetch_array創建的數組(我也嘗試過mysql_fetch_row)

您如何讓他們工作?

上面定義:

$friends = mysql_query("SELECT * FROM friend 

在哪里u1 ='$ userinfo [username]'或u2 ='$ userinfo [username]'“);

再往下走:

$friendsrow = mysql_fetch_array($friends);
$friendsrow = join(",",$friendsrow);

$friendnotes = mysql_query("SELECT nid,user,subject,message FROM friendnote WHERE user IN ($friendsrow) ORDER BY timestamp ASC LIMIT 0,5");

(如果您想知道,那是針對社區站點的)

您始終可以使用子選擇並將其傳遞給IN()運算符。

我認為您加入了錯誤的事情。 您正在加入整個朋友ROW,因此結果為“ 1,Johnny,23years,etc”。 我假設您要列出朋友ID的“ 1,2,3,4,5”。 正如Eimantas所說,最好使用子查詢。

SELECT nid,user,subject,message 
FROM friendnote 
WHERE user IN ((SELECT u2 FROM friends WHERE u1 = $userinfo[username])
               UNION
               (SELECT u1 FROM friends WHERE u2 = $userinfo[username]))
ORDER BY timestamp ASC LIMIT 0,5

mysql_fetch_array返回普通數組,它們沒有什么特別的。 也許您的查詢未返回任何內容,在這種情況下mysql_fetch_array返回false 在嘗試使結果內爆之前先進行檢查。

暫無
暫無

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

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