mod-edit

Topictitel aangepast.

Hallo

Ik heb het volgende probleem.
In mijn script heb ik een deel waar ik een mysql query uitvoer als volgt:
$query = mysql_query("SELECT * FROM cat_end WHERE cat=1 ORDER BY round ASC") or die(mysql_error());

Voer ik die uit in mysql zelf, dan is dit helemaal geen probleem.

Als ik dit echter via php doe, dan krijg ik volgende 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 'ORDER BY round' at line 1

Wie kan mij helpen.
Ik heb nochtans de ORDER BY en dergelijke elders in mijn script gebruikt zonder enig probleem.

Alvast bedankt.
$query = mysql_query("SELECT * FROM cat_end WHERE cat=1 ORDER BY round ASC") or die(mysql_error());

kun je beter dit van maken:

<?php
$query = mysql_query("SELECT * FROM cat_end WHERE cat= '1' ORDER BY 'round' ASC") or die(mysql_error());
?>
round klinkt mij in de oren als een gereserveerd woord, de functie ROUND(). Verzin daar eens een betere naam voor en probeer het dan nog eens.

Ps. de sukkel die roept dat je backtics ` moet gebruiken, mag je negeren. Dat is vragen om problemen en die heb je nu al genoeg.

@AJ: quotes om round zetten? Het is toch geen string of wel dan? En wanneer je backtics bedoelt, zie dan bovenstaande ps...
<?php
$query = "SELECT * FROM cat_end WHERE cat= '1' ORDER BY kolomnaam ASC";
$result = mysql_query($query) or die(mysql_error().$query);
?>
$query is nu een echte query en $result is een echte resultset. De query kun je nu ook echoen, wel zo handig bij debuggen.

kolomnaam mag je nog even vervangen door de kolomnaam waar jij op wilt sorteren, kies in elk geval een betere naam dan round. (ondanks dat dit geen gereserveerd woord lijkt te zijn, het is wel een functienaam)
Ik heb de round veranderd in ronde, maar dit geeft geen beter resultaat.

$query = mysql_query("SELECT * FROM cat_end WHERE cat=1 ORDER BY ronde ASC") or die(mysql_error());
$result = mysql_query($query) or die(mysql_error());


Error is nu:
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 'Resource id #10' at line 1
order by round is een naam in de tabel,
dus mag je hem wel tussen backtics zetten,
het is dus geen functie in dit geval.
Met de laatste aanpassing van pqFrank geen error meer.

Hartelijk bedankt
<?php
$query = mysql_query(...);
$result = mysql_query($query);
?>
Zoek de fout...

Een beetje onlogisch om mysql_query() uit te gaan voeren op het resultaat van een eerdere mysql_query().

AJ
(...) dus mag je hem wel tussen backtics zetten
Ga eens snel je mond spoelen! Backticks zijn bende van MySQL en horen niet thuis in een goede SQL query...
AJ schreef op 05.01.2008 17:13
order by round is een naam in de tabel,
dus mag je hem wel tussen backtics zetten,
het is dus geen functie in dit geval.

Backtics is MySQL dialect. Zo snel mogelijk afleren.
Kan je dat dan ook schrijven als:

$result = mysql_query("SELECT * FROM cat_end WHERE cat='1' ORDER BY ronde ASC") or die(mysql_error());

Ik ben nog een leek in dit soort dingen.
@ iedereen die tegen backticks is, vertel mij eens hoe ik de kolom "z-index" selecteer? Dit lukt mij enkel met backticks :p

Reageren