I'm Winston Wolfe. I solve problems.
SQL, PHP. Ta bort från databasen
Visa signatur
I'm Winston Wolfe. I solve problems.
Hej.
Jag behöver hjälp om hur man tar bort ifrån databasen med PHP-kod på en webbsida. Jag vill ta bort genom att välja i en option-ruta och sedan klicka på en ta bort-knapp.
Kod:
<?php
ini_set("display_errors","2");
ERROR_REPORTING(E_ALL);
include("db.inc.php");
db_connect();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="stylesheet.css" media="all"/>
</head>
<body>
<h4>Ta bort artist</h4> <br/>
<form action="tabort.php" method="post">
<p>Välj artist</p>
<select name="Artist">
<?php
$query = "SELECT * FROM Artist ORDER BY Namn DESC";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
$namn = $row['Namn'];
print "<option value='$namn'>$namn</option>";
}
?>
</select>
<input name="reset" type="reset" value="Tabort" tabindex="22" />
</form>
</body>
</html>
Tacksam för hjälp!
if(isset($_POST['artist'] && !empty($_POST['artist']){
$namn = $_POST['artist'];
// här bör man göra lite tester på $namn och skydda sig mot SQL injection.
$query = "DELETE FROM artist WHERE namn = '$namn'";
if(mysql_query($query)){
echo "Tog bort $namn";
}
}
I'm Winston Wolfe. I solve problems.
Jag la in koden, men har inte fått det att fungera. Webbsidan blir bara blank.
Är det något jag har missat?
<?php
ini_set("display_errors","2");
ERROR_REPORTING(E_ALL);
include("db.inc.php");
db_connect();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="stylesheet.css" media="all"/>
</head>
<body>
<h4>Ta bort artist</h4> <br/>
<form action="tabort.php" method="post">
<p>Välj artist</p>
<select name="Artist">
<?php
$query = "SELECT * FROM Artist ORDER BY Namn DESC";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
$namn = $row['Namn'];
print "<option value='$namn'>$namn</option>";
}
?>
</select>
<input name="reset" type="reset" value="Tabort" tabindex="22" />
</form>
<?php
if(isset($_GET['Artist'] && !empty($_GET['Artist']))){
$namn = $_POST['Artist'];
/* här bör man göra lite tester på $namn och skydda sig mot SQL injection. */
$query = "DELETE FROM Artist WHERE Namn = '$namn'";
if(mysql_query($query)){
echo "Tog bort $namn";
}
}
?>
</body>
</html>
Jag skrev fel, det ska vara POST inte GET i första if-satsen.
Och du har döpt filen till tabort.php?
I'm Winston Wolfe. I solve problems.
Copyright © 1999–2023 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.