Jump to content
php.lv forumi

tabulas tabulas...


neo

Recommended Posts

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

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

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 by bubu
Link to comment
Share on other sites

×
×
  • Create New...