neo Posted April 25, 2005 Report Share Posted April 25, 2005 Ir divas tabulas: kategorijas id | parent | kategorija | -1-|---1-----|---Kaposti--| -2-|---1------|---Maize---| -3-|---1------|---Piens---| produkti id| catid | produkts | 1|---1---| konserveetie | 2|---1---| svaigie | 3|---3---| 1 litrs | 4|---3---| 1.5 litri | Problēma: $result_produkti=mysql_query("SELECT * FROM produkti WHERE catid=1"); while( $row_produkti = mysql_fetch_array($result_produkti)){ $result_kateg=mysql_query("SELECT * FROM kategorijas WHERE id=$row_produkti[catid] "); $row_kateg = mysql_fetch_array($result_kateg); echo $row_kategorijas[kategorija]; } Man ir zinaama tikai catid veertiiba tabulaa "produkti". Tiek paraadita kategorija "Kaposti" uz ekraana divas reizes par cik tabulaa "produkti" zem catid=1 ir divi ieraksti. Kaa var dabuut lai izejot šim ciklam cauri paraadas tikai viens kategorijas nosaukums lai arii cik buutu produktu zem shiis kategorijas? Link to comment Share on other sites More sharing options...
Venom Posted April 25, 2005 Report Share Posted April 25, 2005 kaučkā tev ačgārni, vai nav loģiskāk: select kategorija from kategorijas where parent=1 echo kategorija select * from produkti where catid=1 while echo Link to comment Share on other sites More sharing options...
neo Posted April 26, 2005 Author Report Share Posted April 26, 2005 OK, biski nepareizi uzrakstiiju. Taatad pirmais pieprasiijums dabuu araa visus catid vetribas no tabulas produkti. Taatad izvadaas: 1 1 3 3 Un peec otraa pieprasiijuma izvadaas uz ekraana: Kaposti Kaposti Piens Piens Taadat man vaig lai izvadiitos shaadi: Kapsoti Piens $result_produkti=mysql_query("SELECT catid FROM produkti"); while( $row_produkti = mysql_fetch_array($result_produkti)){ $result_kateg=mysql_query("SELECT * FROM kategorijas WHERE id=$row_produkti[catid] "); $row_kateg = mysql_fetch_array($result_kateg); echo $row_kategorijas[kategorija]; } Link to comment Share on other sites More sharing options...
bubu Posted April 26, 2005 Report Share Posted April 26, 2005 (edited) Cik saprotu tev jāizvada visas kategoriju vērtības, kurām atbilst kaut viens ieraksts no produkti tabulas? $q = mysql_query('SELECT DISTINCT(kategorija) FROM kategorijas JOIN produkti ON kategorijas.id=catid'); while ($r=mysql_fetch_row($q)) { echo $r[0]."\n"; } Var arī ar subkveriju, kas laikam ir uzskatāmāk: SELECT kategorija FROM kategroijas k, (SELECT DISTINCT(catid) AS catid FROM produkti) tmp WHERE k.id=tmp.catid Edited April 26, 2005 by bubu Link to comment Share on other sites More sharing options...
Recommended Posts