簡體   English   中英

如何從相同的多個數據庫結果中選擇一個結果

[英]How to select one result from same multiple database results

我正在創建一個收件箱頁面,在該頁面中我從收件箱數據庫中回顯了用戶的行,但是如果您知道我的意思,那么用戶會多次出現在數據庫表中,這是我的意思的圖像: 在此處輸入圖片說明

因此,“ kaanayo the great”這個名字出現在表中的次數已經很多了。 我希望該名稱僅出現一次,以便在單擊該名稱時將顯示消息正文。

這是我的代碼:

    $mymsg = mysql_query("SELECT msg_from, msg_to FROM message WHERE msg_from='$my_id' OR msg_to='$my_id' ORDER BY msg_id DESC LIMIT $start, $per_page");
while($run_msg = mysql_fetch_array($mymsg)){
    $msg_from = $run_msg['msg_from'];
    $msg_to = $run_msg['msg_to'];
    if($msg_from == $my_id){
        $users = $msg_to;
    } else {
        $users = $msg_from;
    }
    $firsts = getuser($users, 'first');
    $nicks = getuser($users, 'nick');
    $lasts = getuser($users, 'last');

echo "<div align='left'><a href='message.php?user=$users' style='text-decoration:none;><<b><font color='blue'>$firsts $nicks $lasts</font</b></a></div><br>";
    }

我在包含的外部文件中有函數和數據庫連接。

在此處輸入圖片說明

這也是我表的圖像,我不知道它是否適合收件箱的表結構。

最好的方法是移動您的條件(檢查是否等於my_id到mysql查詢中,並讓結果變量為“ users”)。 然后,在查詢結束時,您可以添加;

GROUP BY users

這將確保您只撤回不同的“用戶”

您可以使用IF元素將條件合並到mysql中,即

SELECt IF(msg_from = '$my_id', msg_to, msg_from) AS users

使用小組也許可以幫助您

 $mymsg = mysql_query("SELECT msg_from, msg_to FROM message WHERE msg_from='$my_id' OR msg_to='$my_id' GROUP BY msg_from ORDER BY msg_id DESC LIMIT $start, $per_page"); 

暫無
暫無

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

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