PHP:单击更改变量的值

时间:2019-07-02 18:52:01

标签: php mysql

我在PHP和MySQL中有简单的代码,我试图在点击时更改MySQL查询中的LIMIT。

我在stackoverflow上发现了以下方法,但是没有用。

我希望当有人单击LIMIT按钮时,其值将从0和11更改为11和22。因此,我将在$ _POST存在于包含值0和11的变量的if语句中添加11。但是我的代码不起作用。

我的代码:

if ( $_POST ) {

    $limit1 += 11;
    $limit2 += 11;

} else {
    $limit1 = 0;
    $limit2 = 11;
}

?>
<h2>DOKUMENTY</h2>
<div class="ciara"></div>
<ul class="doc-list">
    <?php
        if ($db->connect_error) {
            die("Not connected: " . 
$db->connect_error);
        }

        $sql = "SELECT * FROM (
                SELECT * FROM upload 
                ORDER BY id DESC 
                LIMIT $limit1, $limit2
                ) sub
                ORDER BY id DESC";
        $result = $db->query($sql);

        if ($result->num_rows) {
            while ($row = $result->fetch_assoc()) {
                echo '<li class="'.($row['id'] % 2 == 0 ? 'light' : 'dark').'"><a href="'. $row["location"] .'">' . $row["headline"] . "</a></li>";
            }
        }
    ?>
</ul>

<form method="post">
    <input type="hidden" value="g">
   <input type="submit" value="Next"> 
</form>

1 个答案:

答案 0 :(得分:1)

只需在表单中添加另一个隐藏的输入字段即可保留最后一个值。

<input type="hidden" name="limit" value="<?= $limit ?>">

,然后将您的php if条件更改为

if ( $_POST['submit'] ) {

    $limit1 += (int) $_POST['limit'] + 11; // adding previous value i.e 0 + 11 = 11;
    $limit2 += (int) $_POST['limit'] + 11; // 11 + 11 = 22;

} else {
    $limit1 = 0;
    $limit2 = 11;
}

但还要确保您是否有更多记录要显示在数据库中,并相应地设置该限制。