pdo — php prev / next для набора результатов для навигации

Я хочу перемещаться по набору данных с двумя кнопками. Я хочу отображать только одну запись каждый раз. Теоретически я установил указатель на следующую или предыдущую запись. Но это не работает. Поэтому я попробовал это по-другому.

Для объяснения: $ picklistNr должен быть исправлен. Содержит список статей. Я хочу, чтобы перемещаться по результатам установки предела.

Запрос возвращает массив через PDO следующим образом:

public function getPicklistItems($picklistNr,$pos = null){

$sql = "SELECT pitem.*, plist.PLHkey
FROM stpPicklistItems pitem
RIGHT JOIN stpArtikel2Pickliste a2p
ON (pitem.id = a2p.ArtikelID)

LEFT JOIN stpPickliste plist
ON (a2p.PicklistID = plist.PLHkey)

WHERE plist.PLHkey = '{$picklistNr}'
LIMIT {$pos} OFFSET 1
";

$sql = $this->db->prepare($sql);
$sql->execute();
return $sql->fetchAll(PDO::FETCH_NUM);
}
<?php
// Contents in my view

$pos = 0;

$picklist = $this->Picklist->getPicklistItems('60000',$pos);

if($_POST['nav'] == 'n') {
$pos += 1;
$picklist = $this->Picklist->getPicklistItems('60000',$pos);
}

if($_POST['nav'] == 'p') {
$pos -= 1;
$picklist = $this->Picklist->getPicklistItems('60000',$pos);
}
?>

<form method="post">
<input type="hidden" name="nav" value="n">
<button type="submit">Next</button>
</form>

<form method="post">
<input type="hidden" name="nav" value="p">
<button type="submit">Previous</button>
</form>

Проблема с этим обновленным кодом в том, что я могу отправить форму один раз. $ Pos изменяется от 0 до 1, и результат соответствует ожидаемому. Следующая статья отображается. Но это работает только один. Если я нажму кнопку второй раз, ничего не произойдет.

Если я нажму кнопку p, чтобы уменьшить $ pos, результатом будет -1 вместо $ pos-1.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …