【发布时间】:2014-09-10 01:35:20
【问题描述】:
我希望我的限制在用户点击提交时自动增加,因此值将被更新,用户将看到他之前发送的消息,这是我的代码:
if(isset($_POST['text']))
{
$counter =1;
$message = mysqli_real_escape_string($con,$_POST['text']);
if(!empty($message))
{
$id = $_SESSION['id'];
$time = time();
$date = date('Y-m-d H:i:s', $time);
$query = "INSERT INTO tbl_chat(time_sent,message_text,users_id) VALUES('$date','$message','$id')";
mysqli_query($con,$query);
$query = "SELECT TIME(time_sent)AS time_sent, i.users_fname, c.message_text FROM tbl_usersinfo AS i INNER JOIN tbl_chat AS c ON
i.users_id = c.users_id ORDER BY c.time_sent DESC LIMIT $counter";
$counter++;
if($run_query = mysqli_query($con,$query))
{
while($row = mysqli_fetch_assoc($run_query))
{
$time_sent = $row['time_sent'];
$users_fname = $row['users_fname'];
$message_text = $row['message_text'];
echo '['.$time_sent.']'.$users_fname.': '.$message_text.'<br/>';
}
}
}
}
我的代码的问题是 sql 只将 counter 的值读取为 1,因此它没有回显用户之前发送的消息。是否可以使用php自动增加限制?
【问题讨论】:
-
如果
$counter的值需要在整个会话中存活,就把它放到会话中(如果还没有设置,就设置为1)。 -
我正在使用 ajax。所以我认为会话部分不是问题。是吗?
-
如果你在每个请求上将 $counter 设置为 1,使用它,递增它,然后在请求结束时将其丢弃,下一个请求......将其设置为 1,使用它,增加它,然后再次丢弃它。 Ajax 请求不是 PHP 的特殊请求。
-
你实现了 Facebook 风格的 Ajax 分页吗?