Waarom werkt deze query niet?

Gestart doorTom3 reacties56 weergaven

4 berichten · pagina 1 van 1

Tom

Lid · Topicstarter

Berichten
3.868
Reputatie
0
Punten
0,02
Lid sinds
Laatst gezien
Waarom werkt deze query niet?:

Codeblok (voorbeeld.php):

1

mysql_query(UPDATE `list` SET `rating` = . $gemiddelde . WHERE `id` = . $id . ) or die(mysql_error());

Ik krijg deze error:

Quote:
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` = 3 at line 1

$id = $_GET[id];
$gemiddelde = $beoordeeling_totaal / totaal;
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Je gemiddelde is waarschijnlijk een kommanotatie getal. Dat moet tussen aanhalingstekens in MySQL.

Waarschijnlijk moet je dus:

Codeblok (voorbeeld.php):

1

mysql_query("UPDATE `list` SET `rating` = " . $gemiddelde . " WHERE `id` = " . $id) or die(mysql_error());

gebruiken
0
Tom

Lid · Topicstarter

Berichten
3.868
Reputatie
0
Punten
0,02
Lid sinds
Laatst gezien
Het werkt nog steeds niet, nu voegt die alleen maar 0 toe aan de database, terwijl die 9 moet toevoegen.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Noteer je query voortaan zo:

[COLOR= #0000BB]<?php[/COLOR] [COLOR= #FF8000]//kleurtjes zichtbaar in dit codeblok[/COLOR]
[COLOR= #0000BB]$sql[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]UPDATE `list` SET `rating` = [/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$gemiddelde[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000] WHERE `id` = [/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$id[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000][/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$result[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sql[/COLOR][COLOR= #007700]);[/COLOR]
?>


Dan kan je gewoon als debugging even $sql echoen, en dan kan je snel en makkelijk zien waar de fout zou kunnen zitten. Wat enters en tabs mogen ook in queries. Vooral als je een hoop VALUES en SETs hebt, en dan kan je makkelijk zien of je een komma ergens mist.

Verder is or die(mysql_error()) een zeer foute manier van foutafhandeling. Gebruik gewoon MySQLi of een if-else constructie.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren