нажмите кнопку, чтобы отобразить следующую запись в базе данных (лимит) - PullRequest
0 голосов
/ 07 мая 2018

что не так в моем коде .. я пытаюсь нажать кнопку "Далее", чтобы отобразить следующую запись в базе данных ... но когда я нажал, ничего не происходит

это моя функция для извлечения записи

  public function getBooks()
{
    $limit = 1;
    //SELECT loginUser.username, Library.nameOfBook FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id WHERE loginUser.username="loay";
    $query = "SELECT Library.nameOfBook FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id WHERE loginUser.username=:username LIMIT $limit";
    $statment = $this->db->prepare($query);
    $statment->execute([
        ':username' => $this->username
    ]);
    $result = $statment->fetchAll();

    echo "<table border='1'>
    <tr>
    <th>Books</th>
    </tr>";
    foreach($result as $row){
        echo "<tr>";
        echo "<td>" . $row['nameOfBook'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";

}

А это мой код в index.php

  if($object->getBooks()){
  if( isset($_POST['next'])){

    $limit +=1;  
}

}

1 Ответ

0 голосов
/ 07 мая 2018

У вас есть только количество записей для извлечения, вы не указали аргумент начала.

Ваш запрос должен быть $query = "SELECT Library.nameOfBook FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id WHERE loginUser.username=:username LIMIT $start, $limit"

Обратите внимание $start, $limit после LIMIT

Тогда ваш код должен быть

 if( isset($_POST['next'])){

     $start +=1;  
 }

** EDIT: Я просто решил, что вы выбираете записи по имени пользователя, и я также предполагаю, что каждое имя пользователя уникально. В этом случае пейджинг не будет работать. Так как для каждого имени пользователя есть только одна строка. Попробуйте запрос как $query = "SELECT Library.nameOfBook FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id LIMIT $start, $limit" Без предложения where.

Вы должны использовать WHERE loginUser.username=:username только при получении записей, добавленных предоставленной loginUser.username

...