我在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>
答案 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;
}
但还要确保您是否有更多记录要显示在数据库中,并相应地设置该限制。