Also, im Grunde, mein PHP-Code soll Buch Datensätze aus der Datenbank hinzufügen oder löschen.MySQL Datensatz löschen
Es fügt die Datensätze zur Datenbank hinzu, aber es tut nicht löschen Sie sie. Hier ist mein Code:
<?php
require_once "login.php";
// connecting to the MySQL
$db_server = new mysqli($db_hostname,$db_username,$db_password);
if(!$db_server){
die("Unable to connect MySQL:" . mysql_error());
}
// selecting needed database
mysqli_select_db($db_server,$db_database) or die("Unable to select database:" + mysqli_error());
// Deleting the Record
if (isset($_POST['delete']) && isset($_POST['author']))
{
$author = $_POST['author'];
$query = "DELETE FROM classics WHERE year='$author'";
if (!$db_server->query($query))
echo "DELETE failed: $query<br>" .
mysql_error() . "<br><br>";
}
// Adding record to MySQL
if (isset($_POST['author']) && isset($_POST['title']) && isset($_POST['category']) && isset($_POST['year']))
{
$author = $_POST['author'];
$title = $_POST['title'];
$category = $_POST['category'];
$year = $_POST['year'];
$query = "INSERT INTO classics VALUES" .
"('$author', '$title', '$category', '$year')";
if (!$db_server->query($query))
echo "INSERT failed: $query<br>" .
mysql_error() . "<br><br>";
}
echo <<<_END
<form action="practise.php" method="post"><pre>
Author <input type="text" name="author">
Title <input type="text" name="title">
Category <input type="text" name="category">
Year <input type="text" name="year">
<input type="submit" value="ADD RECORD">
</pre></form>
_END;
// Outputing or Fetching the Added Record
$query = "SELECT * FROM classics";
$result = $db_server->query($query);
if (!$result) die ("Database access failed: " . mysqli_error());
$rows = mysqli_num_rows($result);
for ($j = 0 ; $j < $rows ; ++$j)
{
$row = mysqli_fetch_row($result);
echo <<<_END
<pre>
Author $row[0]
Title $row[1]
Category $row[2]
Year $row[3]
</pre>
<form action="practise.php" method="post">
<input type="hidden" name="delete" value="yes">
<input type="hidden" name="year" value="$row[0]">
<input type="submit" value="DELETE RECORD"></form>
_END;
}
mysqli_close($db_server);
?>
Irgendwelche Gedanken?
DELETE FROM classics WHERE Jahr verwenden sollte = '$ Autor''? Ja wirklich? Scheint wie Jahr und Autor wird verschiedene Datentypen – RamRaider
Keine Verwendung von vorbereiteten Aussagen entweder; anfällig für SQL-Injektion Angriff – naomik
Nein, es ist nur ein Übungsprogramm. Der Gedanke ist, dass ich $ Jahr und $ Autor für die Abfrage versucht habe. Aber es ist nicht das Hauptproblem. Das Prblem sollte (ich denke) in if-Anweisung, aber kann keine richtige Lösung finden. –