我找到了从mysql加载更多数据的好方法,但我正在寻找更好的方法。这是index.php中的jquery和php代码。
<script>
$(document).ready(function(){
var comco = 2;
$("button").click(function(){
comco = comco + 2;
$("#comnts").load("ld_comco.php",{
comnco:comco
});
});
});
</script>
<div id="comnts">
<?php
$qq="SELECT * FROM t_users limit 2";
$qr=mysqli_query($conn,$qq);while($fff=mysqli_fetch_assoc($qr)){
echo $fff['id'];
echo $fff['email'];
}
?>
</div>
<button>load more</button>和ld_comco.php文件:
$comnco=$_POST['comnco'];
$qq="SELECT * FROM t_users limit $comnco";
$qr=mysqli_query($conn,$qq);while($fff=mysqli_fetch_assoc($qr)){
echo $fff['id'];
echo $fff['email'];
}这样,我必须在两个文件中重复代码两次。我能把这段代码写一次文件吗?谢谢
发布于 2018-05-19 03:43:28
您的代码效率低下,因为它可以同时加载许多记录。您最好在sql查询中使用偏移子句,以便每次单击load时只加载2条记录。
在下面的代码中,除了一次只检索两个记录外,第一个php+mysql代码被删除并被jQuery按钮单击触发器替换。
<script>
$(document).ready(function() {
var comco = 2;
var offset = 0;
$("button").click(function() {
$.ajax({
method: "POST",
url: "ld_comco.php",
data: { comnco: comco, offset: offset }
})
.done(function(msg) {
$("#comnts").append(msg);
});
offset = offset + comco;
});
$("button").trigger("click");
});
</script>
<div id="comnts">
</div>
<button>load more</button>在PHP文档中,我为sql字符串添加了偏移子句,这样您就可以成功地一次只检索2条(唯一)记录。
ld_comco.php
$comnco=$_POST['comnco'];
$offset=$_POST['offset'];
$qq="SELECT * FROM t_users limit $offset, $comnco";
$qr=mysqli_query($conn,$qq);while($fff=mysqli_fetch_assoc($qr)){
echo $fff['id'];
echo $fff['email'];
}https://stackoverflow.com/questions/50421442
复制相似问题