[英]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.