【问题标题】:Auto increment LIMIT with php使用php自动增加LIMIT
【发布时间】: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 分页吗?

标签: php mysql


【解决方案1】:

每次重新加载页面时,$counter 变量的值都会被赋值为 1。 您可以使用 $_SESSION 或 $_COOKIE 变量来存储计数器并增加 $_SESSION/$_COOKIE 变量。

注意:在设置 $_SESSION/$_COOKIE 变量之前检查它是否已经设置。如果已经设置了就不要再设置了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-06
    • 2020-01-14
    • 2018-08-28
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    相关资源
    最近更新 更多