ugrás a tartalomhoz

Mysql táblázatban lévő sorok kiírása

Perzonallica · 2010. Júl. 14. (Sze), 14.10
Sziasztok!

Egyetemre járok, és gyakorlásképp nekiálltam egy E-shop elkészítésének. Az adatbázist létrehoztam, úgy alapjába véve már minden működik rajta, viszont, mint ahogy az lenni szokott mindig akadnak valamilyen apróságok, amiken aztán 1-2 napig is elrágódok. Szóval egy ilyen apróságon szerencsétlenkedek már egy hete. A probléma a következő:

Első kép:

Mint látjátok, az adatbázisban vannak a Kategegóriák (Notebooky, Servery, stb), Alkategóriák (Intel Celeron, Intel Atom, stb) és a Gyártók táblák. A fenti képet a következő kóddal mutatja:
  1. <?php  
  2.   
  3.  $query = 'SELECT  `produkt`.`IDPodkategorie` , `produkt`.`Produkt_kod` , `podkategorie`.`NazovPodkategorie` , `vyrobcovia`.`MenoVyrobcovia` , `produkt`.`IDKategorie`  
  4.             FROM `obchod`.`produkt`  
  5.             INNER JOIN `obchod`.`podkategorie` ON ( `produkt`.`IDPodkategorie` = `podkategorie`.`IDPodkategorie` )  
  6.             INNER JOIN `obchod`.`vyrobcovia` ON ( `produkt`.`IDVyrobcovia` = `vyrobcovia`.`IDVyrobcovia` )  
  7.             WHERE `produkt`.`IDKategorie` = '. $_GET['IDKategorie']. '';   
  8.     
  9.    
  10.   $result = mysql_query($query$dbcor die(mysql_error($dbc));  
  11.     
  12.     
  13.       
  14.   while ($row = mysql_fetch_array($result))  
  15.   {  
  16.       //extract($row);  
  17.         
  18.         
  19.       echo '<table width="400" border="0" cellspacing="0" cellpadding="0">  
  20.             <tr>  
  21.             <td><p> --> <a href="zoznam.php?IDPodkategorie=' .$row['IDPodkategorie']. '">'. $row['NazovPodkategorie']. '<a/><p></td>  
  22.             </tr>  
  23.             <tr>  
  24.             <td>';   
  25.   
  26.       echo $row['MenoVyrobcovia'];  
  27.   
  28.       echo '</td>  
  29.             </tr>  
  30.             </table>' ;}  
  31.     
  32.   } else ...stb...  
Viszont amit én akarok az az, hogy a képen látható két darab Celeron D-ből, csupán egy legyen, és hogy az alatta lévő sorban a két gyártó neve jelenjen meg, jelen esetben az Emachines és az Asus. Tehát csoportosítva legyenek.

A biztonság kedvéért egy képen is ábrázolom, hogy miképp gondolom:


Valószínűleg a „while” helyett a „for”-t kellene ilyenkor használni, de valamiért nekem úgy sem ment.

Tudnátok mondani néhány ötletet ezzel kapcsolatban? Nagyon hálás lennék érte. :)

Előre is köszönöm!


Ja, mivel Szlovákiában lakom, ezért szlovák oldalt készítek. Segítségképp itt vannak a szavak magyar megfelelői:

Kategorie - Kategóriák
PodKategorie - Alkategóriák
NazovPodkategorie - az alkategória neve
Vyrobcovia - gyártók
MenoVyrobcovia - a gyártók neve
 
1

elsőre

csman007 · 2010. Júl. 14. (Sze), 19.16
hát így első ránézésre én pl 2 queryt csinálnék az elsőben lennének a proci tipusok a másodikban pedig a gyártók.
kiiratod az első lekérdezésből az intel atomot majd azt is berakva a második lekérdezés WHERE-jébe kiratod az eredményeket de csak a gyártókat procik nélkül
2

A második WHERE-jébe az ID-t

Perzonallica · 2010. Júl. 14. (Sze), 21.11
A második WHERE-jébe az ID-t rakom, vagy a lekérdezett nevet? Mert próbálgatok itt mindent, de nem nagyon jutok előre... :(

Viszont egy kicsit azért javult a helyzet, mivel most már egy sorban megjeleníti a gyártókat, de nem a procik alá rakja őket, hanem felé, mintha kikerültek volna a <table>-ból...



Valami ezzel a kóddal lesz:
  1. <table width="400" border="0" cellspacing="0" cellpadding="0">  
  2.  <tr>  
  3.    
  4.   <?php  
  5.     
  6.       
  7.     
  8.     
  9.  $query1 = 'SELECT  `produkt`.`IDPodkategorie` , `produkt`.`Produkt_kod` , `podkategorie`.`NazovPodkategorie` , `vyrobcovia`.`MenoVyrobcovia` , `produkt`.`IDKategorie`  
  10.             FROM `obchod`.`produkt`  
  11.             INNER JOIN `obchod`.`podkategorie` ON ( `produkt`.`IDPodkategorie` = `podkategorie`.`IDPodkategorie` )  
  12.             INNER JOIN `obchod`.`vyrobcovia` ON ( `produkt`.`IDVyrobcovia` = `vyrobcovia`.`IDVyrobcovia` )  
  13.             WHERE `produkt`.`IDKategorie` = '. $_GET['IDKategorie']. '  
  14.             GROUP BY `podkategorie`.`NazovPodkategorie`';   
  15.     
  16.      
  17.   $result1 = mysql_query($query1$dbcor die(mysql_error($dbc));  
  18.     
  19.     
  20.   $NazovPodkategorie = $result1['produkt.IDPodkategorie'];  
  21.       
  22.   while ($row1 = mysql_fetch_assoc($result1))  
  23.   {  
  24.       //extract($row);  
  25.         
  26.         
  27.       echo '<td><p> --> <a href="zoznam.php?IDPodkategorie=' .$row1['IDPodkategorie']. '">'$row1['NazovPodkategorie']. '<a/><p></td></tr>';  
  28.        }   
  29.         echo '<tr>  
  30.             <td>';   
  31.     
  32.     
  33.   
  34.     $query2 = 'SELECT  `produkt`.`IDPodkategorie` , `produkt`.`Produkt_kod` , `podkategorie`.`NazovPodkategorie` , `vyrobcovia`.`MenoVyrobcovia` , `produkt`.`IDKategorie`  
  35.             FROM `obchod`.`produkt`  
  36.             INNER JOIN `obchod`.`podkategorie` ON ( `produkt`.`IDPodkategorie` = `podkategorie`.`IDPodkategorie` )  
  37.             INNER JOIN `obchod`.`vyrobcovia` ON ( `produkt`.`IDVyrobcovia` = `vyrobcovia`.`IDVyrobcovia` )  
  38.             WHERE `produkt`.`IDKategorie` = '. $_GET['IDKategorie'] .' ';   
  39.       
  40.     $result2 = mysql_query($query2$dbcor die(mysql_error($dbc));  
  41.   
  42.  while ($row2 = mysql_fetch_assoc($result2))  
  43.  {  
  44.       
  45.       echo $row2['MenoVyrobcovia']. ', ';  
  46.   
  47.     
  48.     
  49.       echo '</td>'; }  
  50.     
  51.             ?>  
  52.               
  53.             </table>  
3

Visszavonom!

Perzonallica · 2010. Júl. 14. (Sze), 23.52
Sikerült!!! Köszönöm szépen a segítséget! :)
4

Visszavonom!

Perzonallica · 2010. Júl. 14. (Sze), 23.55
Sikerült!!! Köszönöm szépen a segítséget! :)

(Sorry, duplán ment)