login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Query in een "while" problemen (Opgelost)

Offline drunkenoldma - 02/06/2009 17:25 (laatste wijziging 02/06/2009 17:28)
Avatar van drunkenoldmaHTML interesse Hey,

Ik heb een probleempje met een query uit te voeren binnen in een andere query (met while).
Ik heb me suf zitten zoeken naar een oplossing, en heb deze tot noch toe gevonden.
Hopelijk kunnen jullie me helpen.
Hier de code:
  1. <?php
  2. $catq = "SELECT * FROM ".TBL_BOARDCAT
  3. ." ORDER BY id ASC";
  4. $catr = $database->query($catq);
  5. while($catrow = mysql_fetch_assoc($catr)){
  6. $catid = $catrow['id'];
  7. $boardq = "SELECT * FROM ".TBL_BOARDS." ORDER BY id WHERE boardcat_id = $catid";
  8. $boardr = $database->query($boardq) or die(mysql_error());
  9. /* Echo hier */
  10. while($boardrow = mysql_fetch_assoc($boardr)){
  11. /*Echo hier */
  12. }
  13.  
  14. }
  15. ?>

Dit geeft als error dit:
Citaat:
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 boardcat_id = 1' at line 1

9 antwoorden

Gesponsorde links
Offline Borre - 02/06/2009 17:28
Avatar van Borre Nieuw lid En wat als je backslashes gebruikt?

Dus bijv WHERE `id`='Blaa' dus hiermee bedoel ik die `
Offline drunkenoldma - 02/06/2009 17:29
Avatar van drunkenoldma HTML interesse Zelfde probleem...
Offline Borre - 02/06/2009 17:31
Avatar van Borre Nieuw lid En doe eens bij deze dingen:

  1. $boardq = "SELECT * FROM ".TBL_BOARDS." ORDER BY id WHERE boardcat_id = $catid";


dit
  1. $boardq = "SELECT * FROM ".TBL_BOARDS." ORDER BY id WHERE `boardcat_id` = '".$catid."'";


En dat bij al die dingen..
Offline drunkenoldma - 02/06/2009 17:34
Avatar van drunkenoldma HTML interesse Ook gebeurd, steeds zelfde fout.

Btw, $database->query function doet dit:
  1. function query($query){
  2. return mysql_query($query, $this->connection);
  3. }
Offline Flex1986 - 02/06/2009 17:39
Avatar van Flex1986 Gouden medaille

Senior Member
Wat dachten we van de ORDER BY achter de WHERE te zetten.

  1. $boardq = "SELECT * FROM ".TBL_BOARDS." WHERE boardcat_id = $catid ORDER BY id"
Offline drunkenoldma - 02/06/2009 17:44
Avatar van drunkenoldma HTML interesse Geeft zoals verwacht hetzelfde probleem, wel word het (logisch) verlengd:
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 `boardcat_id` = '1' ORDER BY `id`' at line 1
Offline Filip - 02/06/2009 17:57
Avatar van Filip IRC guru Als je nu eens echo $boardq; doet, en dat eens toont..

Zo kunnen we je volledige query niet zien want we weten niet wat er in je constant zit...
Offline drunkenoldma - 02/06/2009 17:59 (laatste wijziging 02/06/2009 18:00)
Avatar van drunkenoldma HTML interesse Dit is m'n query:
  1. SELECT * FROM boards ORDER BY id WHERE `boardcat_id` = '1' ORDER BY `id`


EDIT: Oops, nevermind, had niet gezien datter voor de WHERE nog een ORDER BY stond, toen ik deze verwijderde, lukte het wel :>

Bedankt voor de hulp, jongens!
Offline Filip - 02/06/2009 18:02
Avatar van Filip IRC guru
  1. SELECT * FROM `boards` WHERE boardcat_id = '1' ORDER BY id


zet em er zo eens letterlijk in (zonder de vars dus even static maken en kijken of die dan wel werkt)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.206s