我有一个表消息,我想显示最近的消息。
如果用户1已登录,我想这样做:
例如,如果用户1向用户2发送消息,然后用户2向用户1发送消息,我想向用户1显示最新消息。所以它将是用户2发送的那个。
我的桌子有:
id | id_from|id_to|text
1 1 2 abc
2 2 1 dif
3 3 1 jsd
所以,我必须向用户1显示ids 2和3。
我试试这个: 非常感谢!
$consulta=mysql_query("select * from messages where id_from='".$id."' or id_to='".$id."' ");
while($filas=mysql_fetch_array($consulta)){
$id=$filas['id'];
$id_to=$filas['id_to'];
$status=$filas['status'];
$text=$filas['text'];
$time=$filas['time'];
echo "lo primero: ";
$consulta2=mysql_query("select * from messages where id_from='".$id."' or id_to='".$id."' ");
while($filas2=mysql_fetch_array($consulta2)){
echo "es ";
$id2=$filas2['id'];
$id_to2=$filas2['id_to'];
$status2=$filas2['status'];
$text2=$filas2['text'];
$time2=$filas2['time'];
echo "es ";
echo $id2;
if($id_from==$id_from2 and $id_to==$id_to2 and $id2>$id){
$id=$id2;
echo "el mas grande ";
echo $id;
}
}
echo $id;
echo " ";
//Almaceno en un vector los mensajes a mostrar
$result = array ( "'".$id."'");
答案 0 :(得分:0)
使用单个简单查询
SELECT * FROM mytable WHERE id_from != 1 AND id_to = 1
答案 1 :(得分:0)
我假设第一列 id 设置为自动增量。要显示id = $ userid的用户的最近活动,请使用
SELECT *
FROM `messages`
WHERE `id_from` = '$userid' || `id_to` = '$userid'
ORDER BY `id` DESC
LIMIT 1
通过此查询,我们将获得用户的最后一个活动。从结果行中,您可以检查活动是已发送消息还是已接收消息,并相应地显示文本。
如果您只是简单地显示最近使用的收件箱邮件
SELECT *
FROM `messages`
WHERE `id_to` = '$userid'
ORDER BY `id` DESC