login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[opgelost]sql query

Offline skillat2 - 03/02/2007 20:31 (laatste wijziging 08/02/2007 20:33)
Avatar van skillat2HTML beginner Ik heb 2 tables genaamd: categorie, product

categorie product
--------- --------
id naam id artnr catid (naam,prijs etc etc)

Mn query drukt nu elke categorie 1x op het scherm af en zet daaronder de bijbehorende de producten (dmv. catid).

Categorie pietje puk
-------------------
artikel100
102
103 etc.

Dat werkt, nu heb ik het probleem als ik later een nieuwe categorie aanmaak + producten met nummers onder de 100 bijv. dan moet deze wel goed gesorteerd worden, dat gebeurd niet.

Categorie pietje puk
-------------------
artikel100
102
103 etc.

Categorie kareltje
-----------------
artikel 45
46
47 etc.

Nu komen deze nummer niet goed gesorteerd/gerangschikt, iemand een oplossing voor me ? maybe met joins ?


  1. <?php
  2. $res = mysql_query("SELECT id FROM categorie ORDER BY id");
  3. while ($arr = mysql_fetch_row($res))
  4. {
  5. for ($i = 0; $i <= count($arr)-1; $i++)
  6. {
  7. $red = mysql_query("SELECT naam FROM categorie WHERE id=".$arr[$i]."");
  8. while ($obj = mysql_fetch_object($red))
  9. {
  10. echo $obj->naam.'<br />';
  11. }
  12.  
  13. $red = mysql_query("SELECT * FROM product WHERE catid=".$arr[$i]." ORDER BY artnr");
  14. while ($obj = mysql_fetch_object($red))
  15. {
  16. echo $obj->artnr.' - '.$obj->productnaam;
  17. }
  18. }
  19. }
  20. ?>

5 antwoorden

Gesponsorde links
Offline Voldemort - 03/02/2007 21:42
Avatar van Voldemort PHP ver gevorderde Je moet zeggen of je oplopend of aflopend sorteert, dus:

  1. ORDER BY id


==>

  1. ORDER BY id ASC


Deze is voor oplopend. Als je hem aflopend wil:

  1. ORDER BY id


==>

  1. ORDER BY id DESC
Offline skillat2 - 03/02/2007 22:08
Avatar van skillat2 HTML beginner @voldemort
wat is dit voor antwoord ?
1. ik snap heus wel waarvoor asc en desc dient.
2. lees mn post nog 1x.. en zul je zien dat ik 2x moet sorteren
1x op de product art.nr (die werkt) en nu mijn vraag aan de sitemaster gebruiker hier hoe ik kan sorteren op categorie (dmv. van joins bijv. wat mij niet lukt).
Offline MindPrison - 04/02/2007 10:30 (laatste wijziging 04/02/2007 10:31)
Avatar van MindPrison PHP gevorderde En dit? Hiermee doe je alles in 1 query (als het natuurlijk doet wat je wilt )

  1. <?php
  2. $res = mysql_query("SELECT c.naam AS catnaam, p.artnr, p.productnaam FROM categorie c, product p WHERE c.id = p.catid ORDER BY c.id ASC, p.id ASC");
  3. $cat = "";
  4. while ($row = mysql_fetch_array($res, MYSQL_ASSOC))
  5. {
  6. if($cat != $row[catnaam])
  7. {
  8. echo htmlentities($row[catnaam]) . "<br />";
  9. $cat = $row[catnaam];
  10. }
  11.  
  12. echo $row[artnr] . " - " . $row[productnaam];
  13. }
  14. ?>
Offline skillat2 - 08/02/2007 20:27 (laatste wijziging 08/02/2007 20:33)
Avatar van skillat2 HTML beginner
  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\inc\test.php on line 6


line 6
  1. <?php
  2. while ($row = mysql_fetch_array($res, MYSQL_ASSOC))
  3. ?>


Ja ik maak mn sql connectie, iemand een idee ? 

edit: het werkt al, mn veldnaam heb ik een paar dagen geleden hernoemd naar cid ipv. catid ! 

thx anyway het werkt 
Offline Ultimatum - 08/02/2007 21:17
Avatar van Ultimatum PHP expert gebruik voor een volgende keer or die(mysql_error()) achter je query, scheelt je veel zoekwerk 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.263s