提问者:小点点

php两个条件/一次执行两个查询


我是一个PHP初学者,我正在做一个图书系统,我想在插入新书之前检查图书或作者是否已经在系统中。 条件是:

如果author不在系统中,则插入book和author;

如果作者在系统中,则检查图书当图书不在系统中时插入图书,

当图书也在系统中时,回显图书和作者已经在系统中。

我不知道如何添加检查书籍的条件,有没有人可以提供帮助,请。 谢谢。

if($_POST['actiontype'] == 'addbook') {
    $query = $conn->prepare("SELECT * FROM author WHERE name = :name AND surname = :surname 
    AND Nationality = :nationality AND BirthYear = :yob AND DeathYear = :yod");
    $query->bindValue(':name', $name);
    $query->bindValue(':surname', $surname);
    $query->bindValue(':nationality', $nationality);
    $query->bindValue(':yob', $yob);
    $query->bindValue(':yod', $yod);

    $query->execute();
    $row = $query->fetch(PDO::FETCH_ASSOC);
    $authorId = $row['AuthorID'];
    if ($query->rowCount() < 1) { //if rows are not found, add book and author
      try {
        addAuthorandBook($name, $surname, $nationality, $yob, $yod, $bt, $ot, $yop, $genre, 
        $sold, $lan, $cip, $plot, $ps, $date, $userid);
        $_SESSION['message'] = "Author and Book added successfully";
        header('location:../view/pages/dashboard.php');
      }
      catch(PDOException $e) { 
        echo "Book creation problems".$e -> getMessage();
        die();
      }
    }
    else { //author already exists in the database, add book only
      try {
        addBookOnly($bt, $ot, $yop, $genre, $sold, $lan, $authorId, $cip, $plot, $ps, $date, $userid);
        $_SESSION['message'] = "Book added successfully";
        header('location:../view/pages/dashboard.php');
      }
      catch(PDOException $e) { 
        echo "Book creation problems".$e -> getMessage();
        die();
      }  
    }
    exit;
  }

共1个答案

匿名用户

谢谢大家,我已经用了很长时间来完成它了。