ik heb een probleem als ik mijn klanten wens te updaten
ik krijg 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 'WHERE `id` =' at line 2
PHP Code:
<?php
// als er op submit werd gedrukt
if(isset($_POST['bedrijfsnaam'])){
// variabelen
$bedrijfsnaam = htmlentities($_POST['bedrijfsnaam']);
$adres = htmlentities($_POST['adres']);
$postcode = htmlentities($_POST['postcode']);
$plaats = htmlentities($_POST['plaats']);
$btw = htmlentities($_POST['btw']);
$tel = htmlentities($_POST['tel']);
/* beveiliging id */
$id = htmlentities($_POST['id']);
$query = "UPDATE `klanten`
SET `bedrijfsnaam` = '$bedrijfsnaam', `adres` = '$adres', `postcode` = '$postcode', `plaats` = '$plaats', `btw` = '$btw', `tel` = '$tel', WHERE `id` = $id";
mysql_query($query)or die(mysql_error());
echo "De klant werd gewijzigd. <a href='index.php'>Keer terug naar overzicht</a>";
?>
<?php }else{ ?>
<h1>klanten bewerken</h1>
<?php
$id = htmlentities($_GET['id']);
// medewerker opvragen met bovenstaande id
$query = "SELECT * FROM `klanten` WHERE `id` = " .$id;
$result = mysql_query($query) or trigger_error( mysql_error() );
$rijWijzig = mysql_fetch_assoc($result);
?>
<form action="#" method="post">
<table>
<tr>
<td>Bedrijfsnaam:</td>
<td><input type="text" name="bedrijfsnaam" value="<?php echo $rijWijzig['bedrijfsnaam'] ?>" /></td>
</tr>
<tr>
<td>Adres:</td>
<td><input type="text" name="adres" value="<?php echo $rijWijzig['adres'] ?>"/></td>
</tr>
<tr>
<td>Postcode:</td>
<td><input type="text" name="postcode" value="<?php echo $rijWijzig['postcode'] ?>"/></td>
</tr>
<tr>
<td>Plaats:</td>
<td><input type="text" name="plaats" value="<?php echo $rijWijzig['plaats'] ?>" /></td>
</tr>
<tr>
<td>Btw:</td>
<td><input type="text" name="btw" value="<?php echo $rijWijzig['btw'] ?>"/></td>
</tr>
<tr>
<td>Telefoon:</td>
<td><input type="text" name="tel" value="<?php echo $rijWijzig['tel'] ?>"/>
</td>
</tr>
<tr><td colspan="2"><input type="submit" value="Bewerken" /></td></tr>
</form>
</table>
<?php } ?>
- sql update
-
29-04-2012, 10:51 #1
- Berichten
- 161
- Lid sinds
- 13 Jaar
sql update
-
29-04-2012, 11:27 #2
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: sql update
haal die comma eens weg voor de WHERE.
-
29-04-2012, 12:02 #3
- Berichten
- 158
- Lid sinds
- 13 Jaar
Re: sql update
Vervang de variabele query door deze
PHP Code:$query = "UPDATE `klanten`
SET `bedrijfsnaam` = '$bedrijfsnaam', `adres` = '$adres', `postcode` = '$postcode', `plaats` = '$plaats', `btw` = '$btw', `tel` = '$tel' WHERE `id` = $id";
-
29-04-2012, 12:22 #4
- Berichten
- 163
- Lid sinds
- 13 Jaar
Re: sql update
Dit is nog beter:
PHP Code:$query = "UPDATE `klanten`
SET `bedrijfsnaam` = '".$bedrijfsnaam."',
`adres` = '".$adres."',
`postcode` = '".$postcode."',
`plaats` = '".$plaats."',
`btw` = '".$btw."',
`tel` = '".$tel."'
WHERE `id` = '".$id."'";
-
29-04-2012, 12:27 #5
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: sql update
- En TS kan dan beter mysql_real_escape_string() gebruiken dan htmlentities().
-
29-04-2012, 12:45 #6
- Berichten
- 161
- Lid sinds
- 13 Jaar
Re: sql update
alvast bedankt voor de hulp allemaal
voor ik de mysql_real_escape_string() invoer heb ik het eens getest met onderstaande code
maar ik krijg geen error maar de update wordt niet toegepast
PHP Code:<?php
// als er op submit werd gedrukt
if(isset($_POST['bedrijfsnaam'])){
// variabelen
$bedrijfsnaam = htmlentities($_POST['bedrijfsnaam']);
$adres = htmlentities($_POST['adres']);
$postcode = htmlentities($_POST['postcode']);
$plaats = htmlentities($_POST['plaats']);
$btw = htmlentities($_POST['btw']);
$tel = htmlentities($_POST['tel']);
/* beveiliging id */
$id = htmlentities($_POST['id']);
$query = "UPDATE `klanten`
SET `bedrijfsnaam` = '".$bedrijfsnaam."',
`adres` = '".$adres."',
`postcode` = '".$postcode."',
`plaats` = '".$plaats."',
`btw` = '".$btw."',
`tel` = '".$tel."'
WHERE `id` = '".$id."'";
mysql_query($query)or die(mysql_error());
echo "De klant werd gewijzigd. <a href='index.php'>Keer terug naar overzicht</a>";
?>
<?php }else{ ?>
<h1>klanten bewerken</h1>
<?php
$id = htmlentities($_GET['id']);
// medewerker opvragen met bovenstaande id
$query = "SELECT * FROM `klanten` WHERE `id` = " .$id;
$result = mysql_query($query) or trigger_error( mysql_error() );
$rijWijzig = mysql_fetch_assoc($result);
?>
<form action="#" method="post">
<table>
<tr>
<td>Bedrijfsnaam:</td>
<td><input type="text" name="bedrijfsnaam" value="<?php echo $rijWijzig['bedrijfsnaam'] ?>" /></td>
</tr>
<tr>
<td>Adres:</td>
<td><input type="text" name="adres" value="<?php echo $rijWijzig['adres'] ?>"/></td>
</tr>
<tr>
<td>Postcode:</td>
<td><input type="text" name="postcode" value="<?php echo $rijWijzig['postcode'] ?>"/></td>
</tr>
<tr>
<td>Plaats:</td>
<td><input type="text" name="plaats" value="<?php echo $rijWijzig['plaats'] ?>" /></td>
</tr>
<tr>
<td>Btw:</td>
<td><input type="text" name="btw" value="<?php echo $rijWijzig['btw'] ?>"/></td>
</tr>
<tr>
<td>Telefoon:</td>
<td><input type="text" name="tel" value="<?php echo $rijWijzig['tel'] ?>"/>
</td>
</tr>
<tr><td colspan="2"><input type="submit" value="Bewerken" /></td></tr>
</form>
</table>
<?php } ?>
-
29-04-2012, 13:07 #7
- Berichten
- 163
- Lid sinds
- 13 Jaar
Re: sql update
@jeroen,
Probeer dit eens:
PHP Code:$query = "UPDATE klanten
SET `bedrijfsnaam` = '".$bedrijfsnaam."',
`adres` = '".$adres."',
`postcode` = '".$postcode."',
`plaats` = '".$plaats."',
`btw` = '".$btw."',
`tel` = '".$tel."'
WHERE `id` = '".$id."'";
-
29-04-2012, 13:36 #8
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: sql update
Maar na een tijdje, of indien je met databases met 20+ tabellen te maken krijgt, dan ga je toch inzien dat standaarden je vriend worden. Als je overal bv. een 'id' veld hebt, zul je snel merken dat ingewikkelde queries lastiger worden en minder snel zijn geknutseld dan wanneer je overal 'user_id', 'order_id', 'factuur_id' gebruikt had. Waardoor het gebruik van de backticks dus in eerste instantie overbodig zou zijn.
(spaart ook weer een aantal 'select id as order_id' in je overzichten).
-
29-04-2012, 13:40 #9
- Berichten
- 163
- Lid sinds
- 13 Jaar
Re: sql update
Ik weet echt wel wat het betekent, maar het gebruik ervan is gewoon niet verstandig. Als programmeur of database ontwikkelaar moet je gewoon zorgen dat je de standaarden een beetje kent en dan hoef je dit niet te gebruiken. Daarnaast is het niet echt portabel en wordt het alleen gebruikt door mensen met minder ervaring die meestal hun sql queries in phpmyadmin 'uitvogelen' en dan copy-pasten naar een een php scriptje. No offense intended, het is ook niet rampzalig-fout of zo hoor.. ;)
Maar na een tijdje, of indien je met databases met 20+ tabellen te maken krijgt, dan ga je toch inzien dat standaarden je vriend worden. Als je overal bv. een 'id' veld hebt, zul je snel merken dat ingewikkelde queries lastiger worden en minder snel zijn geknutseld dan wanneer je overal 'user_id', 'order_id', 'factuur_id' gebruikt had. Waardoor het gebruik van de backticks dus in eerste instantie overbodig zou zijn.
(spaart ook weer een aantal 'select id as order_id' in je overzichten).
-
29-04-2012, 15:54 #10
- Berichten
- 161
- Lid sinds
- 13 Jaar
Re: sql update
bedankt allemaal ik heb alles toegepast maar de velden worden niet geupdate
-
29-04-2012, 15:58 #11
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
-
29-04-2012, 16:06 #12
- Berichten
- 161
- Lid sinds
- 13 Jaar
Re: sql update
het werkt bedankt :-)
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic