Ссылка для удаления строки php с использованием pdo и oop - PullRequest
0 голосов
/ 10 мая 2018

мой случай: после входа в систему пользователя ... в таблице будет отображаться, какая у него книга ... я добавил ссылку удаления в каждой книге ... например, я нажал на ссылку удаления в стороне книги по математике, которую я хочу удалить его .. как я могу это сделать, пожалуйста. я получаю книги, но когда я нажимаю на ссылку удаления, ничего не происходит.

эта функция отображает книги при входе пользователя в систему

public function getBooks($start = 0, $limit = 2)
{
    $sql_start = $start * $limit;
    $sql_limit = $limit;

    //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 $sql_start, $sql_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>
    <th>Action</th>
    </tr>";
    foreach($result as $row){
        echo "<tr>";
        echo "<td>" . $row['nameOfBook'] . "</td>";
        echo "<td>" ."<input type='submit' name='delete' value='Delete' method='post' " . "</td>";
        echo "</tr>";
    }
    echo "</table>";

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

        deleteBooks($id1, $id2);
    }
}

И эта функция удаления книг

  public function deleteBooks($id1, $id2)

{

    $id1 = $_GET['user_id'];
    $id2 = $_GET['book_id'];
    $query = "Delete FROM  userBook WHERE userBook.user_id=id1 AND userBook.book_id =id2";
    $statment = $this->db->prepare($query);
    $statment->execute([$id1, $id2]);
    $result = $statment->rowCount();
    $this->deleteBooks= ($result == "1");
    return $this->deleteBooks;

}

1 Ответ

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

Прежде всего необходимо добавить book.id по ссылке

echo "<a href='?deleteBooks&id={$row['id']}' onClick=\"return confirm('Are you sure you want to delete?')\">Delete</a>";

После того, как вы нажмете да, у вас будет запрос на получение. Не уверен, где после вызывается функция удаления, но вы можете передать $ _GET параметр на нем deleteBooks($_GET['id]). и функция сама public function deleteBooks($book_id) { $query = "Delete FROM userBook WHERE userBook.user_id=? AND userBook.book_id =?"; $statment = $this->db->prepare($query); $statment->bind_param("ss", $user_id, $book_id); $statment->execute(); // } Я думаю, вы должны хранить user_id в сеансе.

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