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:
<?php

 $query = 'SELECT  `produkt`.`IDPodkategorie` , `produkt`.`Produkt_kod` , `podkategorie`.`NazovPodkategorie` , `vyrobcovia`.`MenoVyrobcovia` , `produkt`.`IDKategorie`
			FROM `obchod`.`produkt`
			INNER JOIN `obchod`.`podkategorie` ON ( `produkt`.`IDPodkategorie` = `podkategorie`.`IDPodkategorie` )
			INNER JOIN `obchod`.`vyrobcovia` ON ( `produkt`.`IDVyrobcovia` = `vyrobcovia`.`IDVyrobcovia` )
  			WHERE `produkt`.`IDKategorie` = '. $_GET['IDKategorie']. ''; 
  
 
  $result = mysql_query($query, $dbc) or die(mysql_error($dbc));
  
  
    
  while ($row = mysql_fetch_array($result))
  {
	  //extract($row);
	  
	  
	  echo '<table width="400" border="0" cellspacing="0" cellpadding="0">
		    <tr>
		    <td><p> --> <a href="zoznam.php?IDPodkategorie=' .$row['IDPodkategorie']. '">'. $row['NazovPodkategorie']. '<a/><p></td>
			</tr>
			<tr>
			<td>'; 

	  echo $row['MenoVyrobcovia'];

	  echo '</td>
			</tr>
			</table>' ;}
  
  } 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:
<table width="400" border="0" cellspacing="0" cellpadding="0">
 <tr>
 
  <?php
  
 	
  
  
 $query1 = 'SELECT  `produkt`.`IDPodkategorie` , `produkt`.`Produkt_kod` , `podkategorie`.`NazovPodkategorie` , `vyrobcovia`.`MenoVyrobcovia` , `produkt`.`IDKategorie`
			FROM `obchod`.`produkt`
			INNER JOIN `obchod`.`podkategorie` ON ( `produkt`.`IDPodkategorie` = `podkategorie`.`IDPodkategorie` )
			INNER JOIN `obchod`.`vyrobcovia` ON ( `produkt`.`IDVyrobcovia` = `vyrobcovia`.`IDVyrobcovia` )
  			WHERE `produkt`.`IDKategorie` = '. $_GET['IDKategorie']. '
			GROUP BY `podkategorie`.`NazovPodkategorie`'; 
  
   
  $result1 = mysql_query($query1, $dbc) or die(mysql_error($dbc));
  
  
  $NazovPodkategorie = $result1['produkt.IDPodkategorie'];
    
  while ($row1 = mysql_fetch_assoc($result1))
  {
	  //extract($row);
	  
	  
	  echo '<td><p> --> <a href="zoznam.php?IDPodkategorie=' .$row1['IDPodkategorie']. '">'. $row1['NazovPodkategorie']. '<a/><p></td></tr>';
	   } 
		echo '<tr>
			<td>'; 
  
  

	$query2 = 'SELECT  `produkt`.`IDPodkategorie` , `produkt`.`Produkt_kod` , `podkategorie`.`NazovPodkategorie` , `vyrobcovia`.`MenoVyrobcovia` , `produkt`.`IDKategorie`
			FROM `obchod`.`produkt`
			INNER JOIN `obchod`.`podkategorie` ON ( `produkt`.`IDPodkategorie` = `podkategorie`.`IDPodkategorie` )
			INNER JOIN `obchod`.`vyrobcovia` ON ( `produkt`.`IDVyrobcovia` = `vyrobcovia`.`IDVyrobcovia` )
  			WHERE `produkt`.`IDKategorie` = '. $_GET['IDKategorie'] .' '; 
  	
	$result2 = mysql_query($query2, $dbc) or die(mysql_error($dbc));

 while ($row2 = mysql_fetch_assoc($result2))
 {
    
  	  echo $row2['MenoVyrobcovia']. ', ';

  
  
	  echo '</td>'; }
  
			?>
			
			</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)