Syntax error

Status
Niet open voor verdere reacties.

hitme007

Gebruiker
Lid geworden
16 jun 2004
Berichten
131
Het volgende script geeft de volgende foutmelding:

You have an error in your SQL syntax near 'email = 'test' ' at line 1

PHP:
<?

require("config.php");

$query = mysql_query("SELECT * FROM Leden_A");
if(!$submit){

while($object = mysql_fetch_object($query)){
?>
<form method="POST" action="<? echo $PHP_SELF ?>">
  <input type="hidden" name="submit" value="1">
  Naam:<br>
  <input type="text" name="naam" size="30" value="<? echo $object->naam ?>"><br>
  Adres:<br>
  <input type="text" name="adres" size="30" value="<? echo $object->adres ?>"><br>
  Postcode:<br>
  <input type="text" name="postcode" size="30" value="<? echo $object->postcode ?>"><br>
  Woonplaats:<br>
  <input type="text" name="woonplaats" size="30" value="<? echo $object->woonplaats ?>"><br>
  Telefoon:<br>
  <input type="text" name="telefoon" size="30" value="<? echo $object->telefoon ?>"><br>
  E-mail adres:<br>
  <input type="text" name="email" size="30" value="<? echo $object->email ?>"><br>
  <input type="submit" value="Opslaan"> <input type="reset" value="Reset"></p>
</form>
<?
}
}
else{

mysql_query("UPDATE members SET naam='$naam', adres='$adres', postcode = '$postcode', woonplaats = '$woonplaats', telefoon = '$telefoon', email = '$email' ") or die(mysql_error());

echo " succesvol geupdate ";
}

?>

wat gaat er fout???:confused:
 
Laatst bewerkt:
Sorry, was een komaatje vergeten :o

Maar wat gaat er fout bij mij.

als ik 1 verandering maak, update hij mij hele tabel i.p.v. alleen die waarde... :confused:

iemand de oplossing?

( hier kun je de lijst met data zien: index
( hier kun je een record aanmaken: nieuw
( hier kun je een record wijzigen: wijzig
 
Het is niet de bedoeling alle records tegelijk te doen lijkt me?

Misschien is het handiger om één record per keer op te halen en te wijzigen..

Dan moet je dus in je query een ID gebruiken, deze ID moet de primaire sleutel/uniek in je tabel zijn.
Deze id moet je dan in bijvoorbeeld je URL meegeven.

Dan kan je in je query een conditie meegeven:
Code:
SELECT * FROM tabel WHERE id=1

UPDATE members SET .... WHERE id=1

http://www.w3schools.com/sql/default.asp
 
das idd mss wel een handig idee.

kolom ID is aangemaakt, maar hoe doe ik dat nu met dat ID in de URL meegeven???
 
Code:
UPDATE members SET .... WHERE id=1

Krijg nu de volgende foutmelding:

You have an error in your SQL syntax near 'WHERE id='1' naam='jochem', adres='mandrill', postcode = '1687 VH', woonplaats =' at line 1

PHP:
mysql_query("UPDATE Leden_A SET WHERE id='1' naam='$naam', adres='$adres', postcode = '$postcode', woonplaats = '$woonplaats', telefoon = '$telefoon', email = '$email' ") or die(mysql_error());
 
Heb je mijn query bekeken?

En de link die eronder staat?

de WHERE conditie staat achteraan.. :)

Url is bijvoorbeeld: http://.../wijzig.php?id=1

In PHP kan je die ID dan uitlezen met $_POST['id']

Succes..
 
OK, scripts als volgt aangepast

PHP:
<?

require("config.php");

$tempid = $_POST['id'];

$query = mysql_query("SELECT * FROM Leden_A WHERE id='$tempid'");
if(!$submit){

while($object = mysql_fetch_object($query)){
?>
<form method="POST" action="<? echo $PHP_SELF ?>">
  <input type="hidden" name="submit" value="1">
  Naam:<br>
  <input type="text" name="naam" size="30" value="<? echo $object->naam ?>"><br>
  Adres:<br>
  <input type="text" name="adres" size="30" value="<? echo $object->adres ?>"><br>
  Postcode:<br>
  <input type="text" name="postcode" size="30" value="<? echo $object->postcode ?>"><br>
  Woonplaats:<br>
  <input type="text" name="woonplaats" size="30" value="<? echo $object->woonplaats ?>"><br>
  Telefoon:<br>
  <input type="text" name="telefoon" size="30" value="<? echo $object->telefoon ?>"><br>
  E-mail adres:<br>
  <input type="text" name="email" size="30" value="<? echo $object->email ?>"><br>
  <input type="submit" value="Opslaan"> <input type="reset" value="Reset"></p>
</form>
<?
}
}
else{

mysql_query("UPDATE Leden_A SET naam='$naam', adres='$adres', postcode = '$postcode', woonplaats = '$woonplaats', telefoon = '$telefoon', email = '$email' WHERE id='$tempid'") or die(mysql_error());

echo " succesvol geupdate ";
}

?>

maar nu krijg ik niets zichtbaar....:confused:

whatz wrong?
 
Op deze manier ziet je database de query ook echt zoals je hem er hebt staan..
Dus : WHERE id='$tempid'

Probeer het eens anders:

WHERE id='" . $tempid . "'

:)
 
Opgelost!!!:D

i.p.v. $_POST heb ik $_GET gebruikt....nu werkt het wel :thumb:
 
Volgende probleem... het script voert de wijzigingen niet door.

PHP:
<?

require("config.php");

$tempid = $_GET['id'];

$query = mysql_query("SELECT * FROM Leden_A WHERE id='".$tempid."'");
if(!$submit){

while($object = mysql_fetch_object($query)){
?>
<form method="POST" action="<? echo $PHP_SELF ?>">
  <input type="hidden" name="submit" value="1">
  Naam:<br>
  <input type="text" name="naam" size="30" value="<? echo $object->naam ?>"><br>
  Adres:<br>
  <input type="text" name="adres" size="30" value="<? echo $object->adres ?>"><br>
  Postcode:<br>
  <input type="text" name="postcode" size="30" value="<? echo $object->postcode ?>"><br>
  Woonplaats:<br>
  <input type="text" name="woonplaats" size="30" value="<? echo $object->woonplaats ?>"><br>
  Telefoon:<br>
  <input type="text" name="telefoon" size="30" value="<? echo $object->telefoon ?>"><br>
  E-mail adres:<br>
  <input type="text" name="email" size="30" value="<? echo $object->email ?>"><br>
  <input type="submit" value="Opslaan"> <input type="reset" value="Reset"></p>
</form>
<?
}
}
else{

mysql_query("UPDATE Leden_A SET naam='$naam', adres='$adres', postcode = '$postcode', woonplaats = '$woonplaats', telefoon = '$telefoon', email = '$email' WHERE id='".$tempid."'") or die(mysql_error());

echo " succesvol geupdate ";
}

?>

hij komt wel met de melding succesvol geupdate en geeft geen errors, maar wijzigt ook niets in de database...
 
Probeer dit eens:

PHP:
mysql_query("UPDATE Leden_A SET naam='".$naam."', adres='".$adres."', postcode = '".$postcode."', woonplaats = '".$woonplaats."', telefoon = '".$telefoon."', email = '".$email."' WHERE id='".$tempid."'") or die(mysql_error());
 
Geen resultaat....zelfde probleem :(

Verdorie, zo dichtbij, maar het lukt gewoon niet...:8-0:
 
Laatst bewerkt:
En nog 'n tip. Je gebruik nu elke keer $submit, $email, $woonplaats, $telefoon etc etc.

Als je dat eens verandert met $_POST['submit'], $_POST['email'] etc

Wat je namelijk nu doet is werken met register_globals On. Op veel servers staat het uit. Dus zal je hele script niet werken.

Ook kun je om het duidelijk te maken 'ordering' gebruiken. Ik script bijvoorbeeld zo:

PHP:
<?

if(isset($_POST['verzend']) == FALSE)
{ // Er is nog niet op de knop 'verzend' gedrukt
  echo "Druk op verzend!";
  echo "<form method=\"POST\">";
  echo "<input type=\"submit\" name=\"verzend\" value=\"Verzend!\">";
  echo "</form>";
}
else
{ // Er is op verzend gedrukt
  echo "Er is op verzend gedrukt";
}

?>
De keus is aan jou om soortgelijk te gaan scripten.

Succes he! :thumb:
 
ik begin net met scripten in PHP, dus alle tips zijn welkom.

bedankt man :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan