加载较早的msg对话

您好我正在制作聊天应用程序。 当用户滚动到顶部时,我想要显示的是显示历史/显示更多按钮,当我点击它时,应该批量加载更早的消息。 因为,多个用户可以聊天我在存储获取的消息的最后一个id时遇到问题。 这是我的概念

当用户单击在线用户时,将从数据库中加载前10个消息。 当用户滚动到顶部时,会出现更多按钮。 如果他点击该按钮然后使用上次获取的行的id,我将再次获取小于先前id的10行。 但由于有多个用户,我需要存储不同的ID。 我该怎么做 这是我的jquery和php代码。

$('#m-'+id).scroll(function() { var pos = $('#m-'+id).scrollTop(); if (pos == 0) { $("#h2-"+id).after("
Show More
"); } else{ $("#showmore-"+id).hide(); } $("#showmore-"+id).click(function(){ $.ajax({ url: "loadmessage.php", type: "POST", data:{ 'sender': sender, 'receiver': receiver, }, //SELECT * FROM `messagse` WHERE ((sender_id = 1 AND receiver_id = 2) OR (sender_id = 1 AND receiver_id = 2)) AND (id =0; i--){ $("#m-"+id).prepend('

' +result[i]+ '

'); } } }); }) });

PHP代码

  query("SELECT id from users where username LIKE '{$sender}'"); $row = mysqli_fetch_row($result); $sender_id = $row[0]; $result = $mysqli -> query("SELECT id from users where username LIKE '{$receiver}'"); $row = mysqli_fetch_row($result); $receiver_id = $row[0]; $sql = $mysqli -> query("SELECT username from users where id in (select sender_id from messagse where sender_id = $sender_id )"); $row = mysqli_fetch_row($sql); $name = $row[0]; //$sql = $mysqli -> query("SELECT * from messagse where (sender_id = $sender_id AND receiver_id = $receiver_id) OR (sender_id = $receiver_id AND receiver_id = $sender_id) "); $sql = $mysqli -> query("SELECT * FROM `messagse` WHERE (sender_id = $sender_id AND receiver_id = $receiver_id) OR (sender_id = $receiver_id AND receiver_id = $sender_id) order by id desc LIMIT 5"); $arr = array(); while($row = mysqli_fetch_array($sql)) { $arr[] = $name." ". $row[3]." ".$row[4]; } echo json_encode($arr); } ?> 

但由于有多个用户,我需要存储不同的ID。 我该怎么做

您可以按照要检索过去消息的用户的ID排序,而不是按表的ID排序。 这样你可以将它限制在你想要的数字,例如LIMIT 5.然后你可以限制5,5等。