у меня есть 3 таблицы в базе данных. Первая таблица для информации для входа в систему, вторая таблица для книг и третья таблица имеют user_id и book_id (внешний ключ).
когда конкретный пользователь вводит свое имя и пароль, я показываю, какая у него книга. что не так в моем коде .. он просто реализует isAuthenticated и он работает .. но он не отображал книги почему?
эта функция для входа в систему
public function isAuthenticated()
{
$query = "SELECT 1 FROM loginUser WHERE username = :username AND password = :password";
$statment = $this->db->prepare($query);
$statment->execute(
array(
':username' => $this->username,
':password' => $this->Password
));
$result = $statment->fetchColumn();
$this->isAuthenticated= ($result == "1");
return $this->isAuthenticated;
}
и эта функция для извлечения книги
public function getBooks()
{
//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'";
$statment = $this->db->prepare($query);
$statment->execute();
$result = $statment->fetchAll();
$this->isAuthenticated= ($result == "1");
foreach($result as $row){
echo $row['nameOfBook'] . "<br/>";
}
return $this->isAuthenticated;
}
и здесь я создаю объект из класса в index.php
<?php
include_once('User.php');
if(isset($_POST['submit'])){
$username = $_POST["user"];
$password = $_POST["pass"];
$object = new User();
$object->username= $username;
$object->Password=$password;
if( $object->isAuthenticated() ){
echo "User Verified";
$object->getBooks();
}
else{
echo "Wrong User Name Or Password";
}
}
?>