In Index.php
- вы неправильно устанавливаете начальное значение $. Приведенный ниже код устанавливает значение $start
из $_POST['start']
, которое, если не существует, $start
по умолчанию равно 0.
И вы также не принимаете отправку формы должным образом. Я изменил код, чтобы принимать оба типа отправки (next и login), выполнив проверку isset () для их переменных $ _POST.
Использование:
<?php
include_once('User.php');
if(isset($_POST['submit']) OR isset($_POST['next'])){
$username = $_POST["user"];
$password = $_POST["pass"];
$object = new User();
$object->username= $username;
$object->Password=$password;
if( $object->isAuthenticated() ){
echo "User Verified . <br><br>";
$start = 0;
if(isset($_POST['start'])){
$start = $_POST['start'];
}
$object->getBooks($start);
}
}
else{
echo "Wrong User Name Or Password . <br>";
}
?>
В коде формы необходимо добавить скрытый ввод, содержащий значение смещения следующей записи базы данных.
Используйте этот код:
<form method="post" action="">
Name: <input type="text" name="user" value="<?php echo $user;?>">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
password: <input type="password" name="pass" value="<?php echo $password;?>" >
<span class="error">* <?php echo $passwordErr;?></span>
<br><br>
<input type="submit" name="submit" value="Login">
<br><br>
<input type="hidden" value="<?php echo (intval(isset($_POST['start'])?$_POST['start']:0)+1);?>" name="start"/>
<button type="button" name="button" onclick="window.location.href='/ooRigester.php'">SignUp</button>
<br><br>
<input type='submit' name='next' value='next' method="post"><br>
</form>
Ваш метод класса getBooks()
должен иметь параметр $start
, чтобы он знал, какая запись будет отображаться рядом.
Попробуйте:
public function getBooks($start = 0)
{
$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 $start, $limit";
$statment = $this->db->prepare($query);
$statment->execute([
':username' => $this->username
//,':start' => $start, ':limit' => $limit
]);
$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>";
}