webForumDet fria alternativet
Logga in / Bli medlem

Film-script som fungerar men har ett problem

PHP

3 svar · 315 visningar · startad av Tympanon

Medlem sedan nov. 2004302 inlägg
Trådstart#1

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!

Medlem sedan juni 20006 031 inlägg
#2

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']}'"
Medlem sedan juni 200032 967 inlägg
#3

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.

Medlem sedan nov. 2004302 inlägg
#4

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!

373 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
121 ms — deklarationer (db)
119 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)