Ik probeer een scriptje te maken waarmee ik, na het selecteren van een naam in de database, deze te verwijderen uit de database.

Ik maak hierbij gebruik van een zoekfunctie, waarmee de naam in kwestie gevonden wordt. Daarna verschijnt er een form met de vraag of je $naam echt wilt verwijderen en dan 2 knoppen: verwijder en annuleer.

De naam wordt gewoon gevonden en $naam wordt ook gewoon vergegeven. Maar zodra je op een knop drukt, gebeurd er niks. Hij voert de query niet uit, maar geeft ook geen foutmelding.

Wat doe ik verkeerd?

<?php
include "dbconnect.php";
//verbinding maken


//spel selecteren
?>

<p align="left"><table><tr>
<td width="50%">
<b>Voer de naam van het spel in:</b>
<br>
<form method="get" action="verwijderen.php">
<input type="text" size="20" maxlength="60" name="trefwoord">
<input type="Submit" name="submit" value="Zoek!">
</form><br><br><hr width="100%"><br><br>


<?php 
$sql = "SELECT * FROM individueel WHERE actief = '1' AND naam = '$trefwoord'  ";
$res = mysql_query($sql) or die('fout in query :'. $sql.' : '. mysql_error());
if($trefwoord){	
$row = mysql_fetch_object($res);
$naam= mysql_escape_string ($row->naam);



if (isset($_POST['verwijder'])){
	
		mysql_query("DELETE FROM individueel WHERE naam = '$naam'") or die(mysql_error());
	
	echo "<B>$naam</b> is verwijderd uit de database!";
	}

if (isset ($_POST['annuleer'])){
	echo "Je hebt geannuleerd! <B>$naam</b> staat nog in de database.";
	}
	
	else {
		?>
	Weet je zeker dat je <b><?php echo $naam; ?></b> wilt verwijderen?<br>
	<form action='verwijderen.php' method='post'><br>
	<input type="submit" name="verwijder" value=" Verwijderen "> 
	<input type="submit" name="annuleer" value=" Annuleren ">
	</form>
	<?php
	}

}
?>
je controleert nergens of je input wel klopt, of dat er uberhaupt input is
En dat laatste is het geval ;)
Op het moment dat je de vraag weergeeft (Weet je zeker...), stuur je niet meer het trefwoord/ de username of userid mee.
hmm oke, klinkt logisch.....

ik snapte dat hij de query niet uit kon voeren omdat hij geen input had. Ik snap alleen niet waarom hij geen input heeft.

Hoe krijg ik nu voor elkaar dat hij het trefwoord wel meestuurt naar de query?
Met een hidden textfield.
ik kom er niet uit :s
Wat heb je geprobeerd en wat lukt er niet?
het form veranderd in:

<form action='verwijderen.php' method='post'><br>
	<input type="hidden" name="naam" value="<? $naam ?>">
	<input type="submit" name="verwijder" value=" Verwijderen "> 
	<input type="submit" name="annuleer" value=" Annuleren ">
	</form>


en

$sql = "SELECT * FROM individueel WHERE actief = '1' AND naam = '$trefwoord'  ";
$res = mysql_query($sql) or die('fout in query :'. $sql.' : '. mysql_error());
if($trefwoord){	
$row = mysql_fetch_object($res);
$_SESSION['naam']= mysql_escape_string ($row->naam);

<form action='verwijderen.php' method='post'><br>
	<input type="hidden" name="naam" value="<? $_SESSION['naam'] ?>">
	<input type="submit" name="verwijder" value=" Verwijderen "> 
	<input type="submit" name="annuleer" value=" Annuleren ">
	</form>


Verschillende dingen in de query zelf geprobeerd...maar het resultaat blijft hetzelfde. Hij geeft de input niet door naar de query.

Welke input moet die doorgeven aan de query? Hoe moet je die input normaal benaderen?

Ik gok vanuit een POST-request. Dan mag jij gokken hoe je de input moet benaderen.
Superglobals: Gebruik $_GET en $_POST om de vars op te halen.

Als je met een session gaat werken dan moet er altijd session_start(); aan het begin van je script staan.
Zet er eens een 'echo' voor.

Reageren