我正在创建一个简单的消息传递web应用程序。人们可以通过登录轻松地发送或接收短信。只需点击特定的联系人姓名,您将拥有一个包含所有先前消息的聊天框。现在的问题是,任何包含大量消息的会话都需要很长时间才能加载聊天室。所以我想第一次在聊天框中显示最新的(orderby sendingtime desc)10条消息。在聊天框的顶部,我想提供一个按钮,通过点击哪个用户将获得前10条消息(order by sendingtime desc),它将一直持续到用户获得最后一条消息。我使用的是php和ajax。我用来获取前10条信息的代码在这里
$sql2="select * from messages where sender='$user1' and reciever='$user2' or reciever='$user1' and
sender='$user2' order by sendingTime desc";
$res2=mysqli_query($con,$sql2);
$num=mysqli_num_rows($res2);
if($num<=10){
for($i=1;$i<=$num;$i++){
$row2=mysqli_fetch_array($res2);
$data2[]=$row2;
}
}else{
for($i=1;$i<=10;$i++){
$row2=mysqli_fetch_array($res2);
$data2[]=$row2;
}
}
但我不知道如何选择接下来的10个消息行。请帮忙。
我的“消息”数据库结构1 idprimary int(11)no none自动增量更改drop
更多2个发送者varchar(100)拉丁文1\u瑞典语\u ci无更改拖放
更多更多3个接收者varchar(100)拉丁文1\u瑞典语\u ci无更改拖放
更多4 msg varchar(5000)拉丁语1\u瑞典语\u ci无更改拖放
更多更多5 sendingtime varchar(100)拉丁文1\u瑞典语\u ci无更改拖放
更多6交货时间varchar(100)拉丁文1\u瑞典语\u ci无更改拖放
更多7状态int(1)否
2条答案
按热度按时间hgqdbh6s1#
警告!:您目前对sql注入(sqli攻击)非常开放。请使用准备好的语句和参数化查询,使用mysqli或pdo。你的数据库有很大的风险!不要相信任何用户输入!
话虽如此,我将继续使用mysqli准备的语句和参数化查询来回答这个问题。
您在查询中通常需要的是
LIMIT
接线员。有关LIMIT
接线员可以在这里找到。例子:
我在这儿拉小提琴。
在ajax函数中,需要解析一个值,该值将作为
LIMIT
条款。每次单击“加载更多”,该值就会增加10。以下是您的php页面的外观:
要循环查看结果:
g6ll5ycj2#
中间试验操作员
其中列名称介于value1和value2之间;
设置值1和值2的条件
检查语法