Ich versuche, eine Schaltfläche zum Löschen meiner Tabelle zu machen, so dass ich einfach Elemente aus der Liste mit nur dem Löschen-Button entfernen kann. aber ich kann nicht herausfinden, wie es zu tun, so würde ich fragen, ob jemand CUD mir helfenVersuchen, ein Löschen meiner Tabelle hinzuzufügen (mysql/pdo/php)
Hier ist mein Code atm index.php
?php include 'connection.php' ?>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="css/style.css">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- <link href="css/bootstrap.css" rel="stylesheet" type="text/css"> -->
<link href="css/bootstrap-3.3.7.css" rel="stylesheet" type="text/css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container"></div>
<div class="row">
<div id="header" class="header col-md-12">
<h1 class="page-header" id="header">Invertering</h1>
</div>
</div>
<!--Input -->
<div class="row">
<div class="col-md-12">
<form method="post" id="input" >
\t <input type="text" name="namn" id="tasklabel" placeholder="namn"/>
\t
<input type="text" name="antal" id="tasklabel" placeholder="antal"/>
<input type="text" name="lagerplats" id="tasklabel" placeholder="lagerplats"/>
<br />
\t <input id="submit" type="submit" value="Lägg till">
\t <br />
</form>
</div>
</div>
<div class="row">
<div class="col-md-12">
<form method="post" id="input" action="delete.php" >
<input id="test" type="text" name="id" id="tasklabel" placeholder="Id att ta bort"/>
<br />
\t <input id="submit" type="submit" value="Ta bort">
\t <br />
</form>
</div>
</div>
<div class="row">
<div id="table" class="col-md-12">
<li><a href="delete.php?id=<?php echo $row['id']; ?>">Delete</a></li>
<?php
echo "<table style='border: solid 1px black; margin: auto; \t width: 50%; padding: 10px; text-align:center;'>";
echo "<tr><th style='text-align:center; border: solid 1px black;'>Namn</th><th style='text-align:center; border: solid 1px black;'>Antal</th><th style='text-align:center; border: solid 1px black;'>Lagerplats</th><th style='text-align:center; border: solid 1px black;'>Id</th><th style='text-align:center; border: solid 1px black;'>Ta bort</th></tr>";
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px; text-align:center; border: solid 1px black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT namn, antal, lagerplats, id FROM inventory");
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>
</div>
</div>
</body>
</html>
dann hier ist meine Löschfunktion
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "inventory";
$id=$_POST['id'];
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql to delete a record
$sql = "DELETE FROM inventory WHERE id=$id";
// use exec() because no results are returned
$conn->exec($sql);
echo "Record deleted successfully";
\t echo "<html><meta http-equiv=\"refresh\" content=\"1;URL='http://localhost/invertering/index.php'\"><p>Please wait 1 seconds...</p></html>";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
Und hier ist die Verbindung
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "inventory";
$namn=$_POST['namn'];
$antal=$_POST['antal'];
$lagerplats=$_POST['lagerplats'];
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
\t
?> \t
\t
<?php
if ($namn == null) {
print "<script>alert('var god och skriv något...')</script>";
}
else {
$sql = "INSERT INTO inventory (namn, antal, lagerplats)
VALUES ('$namn', '$antal', '$lagerplats')"; \t
\t $conn->exec($sql);
}
?>
<?php
$conn = null;
?>
Ps: ich weiß, dass der Code schlecht sind, aber iam mein Bestes atm tun
Und was passiert, wenn auf die Schaltfläche zum Löschen geklickt wird, $ sql = "DELETE FROM inventory WHERE id = $ id"; Fügen Sie einen * $ sql = "DELETE * FROM Inventar WHERE ID = $ ID"; – yesitsme
'delete.php? Id = Php echo $ row ['id']' Wenn Sie so etwas haben, können Sie Ihren Wert nicht mit '$ id = $ _ POST ['id'];' Sie müssen Verwenden Sie $ _GET aber Sie sind Code ist vunerable zu SQL-Injektion – MacBooc
@yesitsme der * ändern nichts, weil Sie eine Zeile löschen, kein Feld – MacBooc