所以基本上我有一个load.php
页面,它接收一个位置变量并使用它来显示来自该表的那个位置的6个结果...但是我发现某处有一个错误,因为没有任何东西被返回...你能帮忙吗?
以下是代码:
<?php
error_reporting(0);
session_start();
include '../upload/connect.php';
$start = $_POST['start'];
$id = $_POST['id'];
$sql = mysql_query("SELECT * FROM comments WHERE id='".$id."' ORDER by id DESC LIMIT ".$start." , 6 ") or die(mysql_error());
while ($display = mysql_fetch_assoc($sql))
{
?>
<div id="comments">
<table>
<tr>
<td rowspan="2"><img src="../pic/logo.png" width="100px" /></td>
<td valign="top"><p style="width:700px;font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif;font-size:13px;color:rgba(255,255,255,0.5);"> Postat de <?php echo $display['user']; ?> la <?php echo $display['date']; ?> </p></td></td>
</tr>
<tr>
<td width="90%" valign="top"><p style="width:700px;font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif;font-size:13px;color:white;"> <?php echo $display['comment']; ?></p>
</tr>
</table>
</div>
<?php
}
?>
和jquery:
var st = 6;// start position...
var div_height = $("#mighty_holder").height()/2- 50;
var doc_scroll = $(document).scrollTop();
function loadthem (k)
{
$.post('../core/load.php',{start: k , id: <?php echo json_encode($id); ?>},
function(result){
$("#comment_holder").append(result);
});
}
$(document).scroll(function(){
if ($("#mighty_holder").height()/2- 50 < $(document).scrollTop())
{
loadthem(st);
st = parseInt(st) + 7;
}
});
答案 0 :(得分:0)
在您的Javascript代码中,您将var st = 6
发送6
初始化为start
。然后在scroll
函数中,它作为参数传递给loadthem
函数,导致6
在AJAX POST请求中以start: k
的形式发送到PHP页面。它已恢复为$start = $_POST['start']
并插入6
之类的查询,生成LIMIT 6, 6
。哪个不会从查询中返回任何结果。
您可能打算将st
初始化为0
。
旁注:为了防止SQL注入,我建议您对int
和$_POST['id']
执行$_POST['start']
强制转换,假设它们都应该是数值:
$start = (int) $_POST['start'];
$id = (int) $_POST['id'];
答案 1 :(得分:0)
这是你的错误
var st = 6;// start position...
st应为0.在您的情况下,您有LIMIT 6, 6
。我猜你想要LIMIT 0, 6