Я пытаюсь создать базу данных для книжного магазина с 3 таблицами: книга, том и публикация.
версия 2: я мог внести некоторые исправления в свой код и базу данных благодаря предыдущим ответам, и этот работает.
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
//connect to db
$conn = mysqli_connect("localhost","root","");
$dbcon = mysqli_select_db($conn,"ershadbookstore");
if ( !$conn ) {
die("Connection failed : " . mysqli_error());
}
if ( !$dbcon ) {
die("Database Connection failed : " . mysqli_error());
}
#new recoed: if the new record is inserted into book successfully, another new record is inserted into volume table. the same goes for volume and phblication table. at the end the total number of this volumn is editted in the rows with the same isbn.
$sql = "INSERT INTO Book (name, vnum, writer, translator, pulisher, genre, format)
VALUES ('test', 'test', 'test', 'test', 'test', 'test', 'test')";
if (mysqli_query($conn, $sql)) {
$isbn="3";
$sql = "INSERT INTO Volume (isbn, bid, vnum, note, image)
VALUES ('".$isbn."', '".mysqli_insert_id($conn)."', 'test', 'test', 'test')";
if (mysqli_query($conn, $sql)) {
$sql = "INSERT INTO Publisher (isbn, pubnum, pyear, circulation, fpyear, pagenum, price, num)
VALUES ('".$isbn."', 'test', 'test', 'test', 'test', 'test', 'test', 'test')";
if (mysqli_query($conn, $sql)) {
$totalnum=0;
$sql= "SELECT num FROM Publisher
WHERE (isbn = '".$isbn."')";
$query= mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($query)){
$totalnum += $row['num'];
}
$sql1= "UPDATE Volume
SET tnum = '".$totalnum."'
WHERE isbn = '".$isbn."'";
if (mysqli_query($conn, $sql1))
{
echo "true";
}
else
{
return "Error publisher table(tnum): " . $sql1 . "<br>" . mysqli_error();
}
}
else{
return "Error publisher table: " . $sql . "<br>" . mysqli_error();
}
}
else {
return "Error for volume table: " . $sql . "<br>" . mysqli_error();
}
}
else {
return "Error for book table: " . $sql . "<br>" . mysqli_error();
}
mysqli_close($conn);
?>
версия 1: я использую mysqli (), и код не работает и не отображает никаких ошибок.
<?php
//connect to db
$conn = new mysqli("localhost", "root", "", "ershadbookstore");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
#new recoed: if the new record is inserted into book successfully, another new record is inserted into volume table. the same goes for volume and phblication table. at the end the total number of this volumn is editted in the rows with the same isbn.
$sql = "INSERT INTO Book (name, vnum, writer, translator, publisher, genre, format)
VALUES ('test', 'test', 'test', 'test', 'test', 'test', 'test')";
if ($conn->query($sql) === TRUE) {
$last_bid = $conn->insert_id;
$sql = "INSERT INTO Volume (isbn, bid, vnum, note, image)
VALUES ('test', 'test', 'test', 'test', 'test')";
if ($conn->query($sql) === TRUE) {
$sql = "INSERT INTO Publication (isbn, pubnum, pyear, circulation, fpyear, pnum, price, num)
VALUES ('test', 'test', 'test', 'test', 'test', 'test', 'test', 'test')";
if ($conn->query($sql) === TRUE) {
$sql= "SELECT SUM(num) FROM Publication
WHERE (isbn='test')";
if ($conn->query($sql) === TRUE) {
$totalNum=$conn->query($sql);
$sql1= "UPDATE Volume
SET (tnum = test)
WHERE (isbn= test)";
if ($conn->query($sql1) === TRUE)
{
echo "true";
}
else
{
return "Error publication table: " . $sql1 . "<br>" . $conn->error;
}
}
}
else{
return "Error publication table: " . $sql . "<br>" . $conn->error;
}
}
else {
return "Error for volume table: " . $sql . "<br>" . $conn->error;
}
}
else {
return "Error for book table: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
спам: поскольку этот пост в основном представляет собой код, я не могу отправить его, пока не добавлю спам или не удалю некоторые части своего кода, а второй вариант просто усложнит все.