Ik heb een verwijder.php bestand maar op een of andere manier wil het niet gaan werken. Volgens de error report zit de error in de volgende regels:

if($_POST['submit']){
$query = "DELETE FROM gastenboek WHERE id=". id ."";
$verwijder = mysql_query($query) or die(mysql_error());
print("Het bericht is verwijdert.<br>Klik <a href=\"index.php\">hier</a> om terug te keren naar het gastenboek.");
}

De error geeft aan dat het om de regel $verwijder gaat kan iemand een suggestie geven van wat ik verkeerd doe?

groetjes en alvast bedankt!
Maar dat is juist het apparte, even daarvoor heb ik dat dus nog wel maar oppeens niet meer? terwijl hij wel eerst controleerd of ik wel een connectie heb (anders zou ik ook niet kunnen inloggen) maar zodra ik bevestig dat hij hem moet gaan verwijderen lig ik er uit
Idd, kijk eens naar de mysql_connect() functie. Waarschijnlijk staat die ook al ergens in je andere scripts.

Edit: Ja wanneer je naar een nieuwe pagina gaat, id git geval verwijder.php, dat wordt de mysql-connectie in het voorgaande script aan het einde afgesloten door PHP. Je zult deze in verwijder.php weer opnieuw moeten aanmaken. Of verwijder.php moet ge-include worden door een script dat wel nog een connectie heeft naar je server.
Nu heb ik mijn connectie file geinclude bij het bestand maar nu krijg ik deze error;

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Op welke lijn geeft hij die error? En wat staat op die lijn?

Ik denk dit:

<?php
$id = "SELECT * FROM gastenboek WHERE id";
$query = "DELETE FROM gastenboek WHERE id=". $id ."";
?>

Zet hierachter eens echo $query;

Dan zie je welke query je krijgt. Een soort sub-query, maar dit is denk ik niet de bedoeling, watn je wilt gewoon in $id een integer waarde hebben staan en geen query. Kijk hier eens naar.
DELETE FROM gastenboek WHERE id=SELECT * FROM gastenboek WHERE id

Dit is de regel die ik krijg als ik echo $query invoer

Ik ben nu al een stap verder, als ik dit doe:

<?
if (isset($_POST['submit'])) {
require ("connectie.php");
$id = "id";
$query = "DELETE FROM gastenboek WHERE id= ". $id ."";
$verwijder = mysql_query($query) or die(mysql_error());
print("Het bericht is verwijdert.<br>Klik <a href=\"index.php\">hier</a> om terug te keren naar het gastenboek.");
}
else{?>


dan leeg ik mijn hele gastenboek, hoe kan ik dan het geselecteerde bericht verwijderen?

<?
if (isset($_POST['submit'])) {
    require ("connectie.php");
    $id = "id";
    $query = "DELETE FROM gastenboek WHERE id= $id";
    $verwijder = mysql_query($query) or die(mysql_error());
      print("Het bericht is verwijdert.<br>Klik <a href=\"index.php\">hier</a> om terug te keren naar het gastenboek.");
}
else{?>


". $id ." is volgens mij helemaal niet nodig... gebruik gewoon $id (dit is een normale variabele in php dus herkent hij gewoon) en dan weet je zeker dat het werkt.

probeer anders deze even:


<?
if (isset($_POST['submit'])) {
    require ("connectie.php");
    $id = "id";
    $query = "DELETE FROM gastenboek WHERE id= '$id'";
    $verwijder = mysql_query($query) or die(mysql_error());
      print("Het bericht is verwijdert.<br>Klik <a href=\"index.php\">hier</a> om terug te keren naar het gastenboek.");
}
else{?>


Verwijderd bedoel je hopelijk? 0_o
". $id ." is volgens mij helemaal niet nodig... gebruik gewoon $id (dit is een normale variabele in php dus herkent hij gewoon) en dan weet je zeker dat het werkt.


Dat heeft er niets mee te maken. Het zijn beide geldige methodes. Bij de ene haal je de var gewoon uit de string. Werking is precies hetzelfde.


@Celine: hele probleem is gewoon dat je jouw $id variabele geen waarde toekent. Als je zegt $id = "id"; Dan zegt MySql in de query gewoon "id" is een string maar je hebt een integer nodig, dus maak ik er 0 of NULL, weet niet zeker welke. Dan wordt jouw query dus perongeluk foutief uitgevoerd door een conversie (lees: type-casting).

De hele regel $id = "id"; slaat gewoon nergens op.

Ik denk dat je beter een wat tutorials op deze site kunt lezen m.t.b. tot formulieren en communicatie met databases.

Het is gewoon heel simpel je zet boven aan je pagina:
<?php
echo $_GET['id'];
//of
echo $_POST['id'];
?>
Waar beide niets afdrukken dan stuur je gewoon niet juist je id variabele door.
Pas als een van de 2 een waarde heeft, dan ken je die toe aan $id. En let op dat je zorgt dat je de input doet controleren, zodat er geen eventuele SQL-injection kan plaatsvinden. Daarheen moet je eerst kijken voordat je iets met de queries gaat doen.

Reageren