[英]How can I loop through and display 1 DB record at a time?
我正在制作一个简单的项目拣选系统,在该系统中,用户将使用一个按钮来显示一个项目,然后将其按下,然后在下一行中显示下一个项目。
当前,当按下按钮时,它将显示第一项,然后再次按下将显示第一项以及第二项,然后显示第三项,依此类推。
一个例子是:
第一次按下:item1
第二次按下:item1,item2
我需要弄清楚如何在通过表格时一次仅显示一项。 任何帮助,将不胜感激,谢谢。 这是我的按钮:
<script>
var offset = 0;
$(document).ready(function () {
$('#button1').click(function (e) {
$("#div1").empty();
// pass offset value with GET request
$.getJSON("getItem.php?offset=" + offset, function(result){
offset++; // increment the value after sucessful AJAX call
$.each(result, function(i, field){
$("#div1").empty();
$("#div1").append(JSON.stringify(result));
});
});
});
});
</script>
这是我的getitem.php
mysqli_select_db($con,"items");
$rows = null;
// Get the offset value
$offset = empty($_GET['offset']) ? 0 : $_GET['offset'];
$sql="SELECT * FROM items Limit 1, $offset "; // pass the offset value to LIMIT query
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_assoc($result))
$rows[] = array_map('utf8_encode', $row);
echo json_encode($rows);
问题出在查询的LIMIT部分。 您放置“ 1”的第一部分实际上是偏移量,而获得$ offset的第二部分实际上是计数值。
可能应该是这样的:
$sql="SELECT * FROM items LIMIT $offset, 1";
您可以第一次从数据库中选择所有项目,然后将它们存储到阵列中。 每次用户单击按钮时,都可以使用偏移量从该数组中选择项目。
这样,您可以避免对每个对象/单击都发出新的http请求。 除非您有无限数量的对象和/或对象尺寸很大。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.