Tycker att du ska sätta värdet på radera till id istället för titel för att slippa krångel. Antar att du har id som autoincrement när du sparar i databasen. Och sen köra din delete på id istället.
"DELETE FROM gastbok WHERE id = '{$_POST['id']}'"
3 svar · 315 visningar · startad av Tympanon
Hejsan. Satt idag och kodade gärnet efter att just ha fått igång mysql dock så får ja som en del vet köra mysqli istället för vanliga men men =)
I denna.php fil som jobbar mot en databas kan man lägga till filmer man sett o även ta bort någon om man vill med en radera knapp på varje post.
Problemet e att man inte kan ta bort poster me ett namn som inte sitter ihop, så man kan ta bort t.ex. "Armagedon" utan problem men inte "Sagan om ringen" eftersom det där finns mellanrum. har antagligen gjort nåt fel me datatyperna? bifogar koden, den e rätt kort så kan ni titta om ni vill.
<html>
<body bgcolor="#99CCFF">
<?
function matain(){
$titel = $_POST['titel'];
$info = $_POST['info'];
$conn = mysqli_connect("localhost","root","losen");
$databas = mysqli_select_db($conn,"super");
mysqli_query($conn,"INSERT INTO gastbok(titel,info) VALUES ('$titel','$info')");
mysqli_close($conn);
}
function visa(){
$conn = mysqli_connect("localhost","root","losen");
$databas = mysqli_select_db($conn,"super");
$result = mysqli_query($conn,"SELECT * FROM gastbok");
while($rad = mysqli_fetch_array($result)){
?>
<form method="post" action="<?=$PHP_SELF?>">
<? echo "<B>".$rad[titel]."</B> "; ?>
<input type="hidden" name="radera" value=<?echo "$rad[titel]"?>><input type="submit" name="kollaradera" value="Radera">
<? echo "<br>". $rad[info]; ?>
</form><?
}
mysqli_close($conn);
}
if(!empty($_POST['titel'])) matain();
if(isset($_POST['kollaradera'])){
$blabla=$_POST['radera'];
$conn = mysqli_connect("localhost","root","losen");
$databas = mysqli_select_db($conn,"super");
mysqli_query($conn,"DELETE FROM gastbok WHERE titel='$blabla'");
mysqli_close($conn);
}
?>
<form method="post" action="<?=$PHP_SELF?>">
Filmens namn: <input type="text" name="titel" size="18"><br>
<TEXTAREA NAME="info" ROWS="3" COLS="25"></TEXTAREA>
<input type="submit">
</form>
<?
visa();
?>
</body>
</html>
Tack på förhand!
Tycker att du ska sätta värdet på radera till id istället för titel för att slippa krångel. Antar att du har id som autoincrement när du sparar i databasen. Och sen köra din delete på id istället.
"DELETE FROM gastbok WHERE id = '{$_POST['id']}'"
Pedda har helt rätt, men man kan ju också berätta varför det blir som det blir. Anledningen är att du har fel i din HTML-kod:
<input type="hidden" name="radera" value=<?echo "$rad[titel]"?>
. Du skall ha citationstecken runt värdet efter value, då kommer det fungera.
Försökte skapa en id mediumint auto_increment, primary key(id) i dosfönstrer men det stog att jag skulle kolla i min manual och att man skulle skriva primary key(id) på något annats sätt typ. ja kör mysql 4.1 ska fundera lite på de här för du har helt rätt i att ja borde köra id!