webForumDet fria alternativet

Film-script som fungerar men har ett problem

PHPur PHP

3 svar · 315 visningar · startad av Tympanon

TympanonMedlem sedan nov. 2004302 inlägg
#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!

PeddaMedlem sedan juni 20006 032 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']}'"
@ndersMedlem sedan juni 200032 969 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.

TympanonMedlem 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!

130 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)