SQL abfrage anhand SQL abfrage

Hallo miteinander

Ich bin mir nicht sicher ob diese Frage hier hin oder in die PHP Abteilung gehört stelle Sie jedoch hier.

Ich benötige eine Datenbankabfrage die die Datenbank anhand von Daten aus der Datenbank abfragt… komplizierte Angelegenheit vieleicht gibts ja eine einfachere Lösung als ich mir das vorstelle.

Ich habe eine Datenbank mit verschiedenen „Kategorien“ welche in einem Feld angegeben sind, nun möchte ich eine Abfrage machen was für Kategorien eingetragen sind:

$query = "SELECT \* FROM pakete GROUP BY `kategorie` ASC";

zurück kommt:

  • kategorie1

  • kategorie2

  • kategorie3

  • (und alle weiteren eingetragenen kategorien)

jetzt brauche ich alle einträge aus allen kategorien sprich

kategorie1

  • eintrag1

  • alle anderen einträge

kategorie2

  • eintrag1

  • alle anderen einträge

Kategorie3

  • usw…

mit folgendem PHP Code habe ich das ganze versucht, weiss jedoch nicht weiter… Bekomme so die erste Kategorie korrekt angezeigt alle anderen kategorien werden nicht angezeigt.

<?php include ('database_config.php');<br /> $query = "SELECT \* FROM pakete GROUP BY `kategorie` ASC";
 $result = mysql\_query($query);
 while ($line = mysql\_fetch\_array($result)) { ?\>
  •    <?php echo $line[kategorie]; ?>
<?php $query = "SELECT * FROM pakete WHERE `kategorie`='$line[kategorie]' ORDER BY `sys_reihenfolge` ASC";
$result = mysql\_query($query); while ($menu = mysql\_fetch\_array($result)) { ?\> - <?php $menu[kurzname]; ?> <?PHP }
?\> <?php }
mysql\_free\_result($result); echo mysql\_error(); mysql\_close(); ?\> Ich hoffe ich konnte mein problem verständlich schildern, fals nicht, scheut euch nicht zu fragen.

Hallo space,

verstehe ich dich richtig:

Du willst alle Paketdaten, gruppiert nach Kategorien, ausgeben und zusätzlich noch die jeweiligen Daten der (vermutlich) eigenen Tabelle „Kategorie“?

Gruß, Leebo

hallo, danke für die schnelle rückfrage,

ja ich möchte die paketdaten nach kategorie ordnen und ausgeben. eine separate kategorie tabelle existiert nicht.

paketname | paketkategorie | zahl zum ordnen | etc.

ausgabe die erfolgen soll:

kategorie1
 paketname1
 paketname2
 paketname3

kategorie2
 paketname1
 paketname2
 paketname3

etc...

Hmmm ok…

2 Fragen, die mir einfallen:

Hat ein Paket mehrere Kategorien, oder war das ohne größere Bedeutung, dass paketname1 etc. in 2 Kategorien auftaucht?

Wenn nur eine Kategorie pro Pakte exisitiert, sollte der Group-by-Befehl die Daten eigentlich folgendermaßen ausgeben:

kategorie1 paketname1
kategorie1 paketname1
kategorie1 paketname2
kategorie1 paketname3

kategorie2 paketname4
kategorie2 paketname4
kategorie2 paketname5
kategorie2 paketname6

etc...

Tut er das? Wenn ja, wo ist dann das Problem bzw. was willst du anders ausgeben?

Gruß, Leebo

Sorry… natürlich dürfen die Paktenamen nur einmal auftauchen, sofern sie nicht redundant gespeichert sind :wink:

huhu,
also meine Lösung würde wohl in diese Richtung gehen…

<?php $aktuelle_kategorie = null;
include ('database\_config.php'); $query = 'SELECT \* FROM pakete ORDER BY `kategorie`, `sys_reihenfolge`'; $result = mysql\_query($query); while ($line = mysql\_fetch\_array($result)) { if($aktuelle\_kategorie != $line['kategorie']) { if($aktuelle\_kategorie != null) { echo ''; } echo ' '.$line['kategorie'].' '; $aktuelle\_kategorie = $line['kategorie']; } echo '- '.$menu['kurzname'].' '; } echo ''; ?\> Gruß

sry irgendwie zerflückt der editor den quelltext hier…
kannst ihn dir sauber unter

http://www.grueter-online.de/wewewa.txt

angucken

Danke für den versuch zu helfen, Leider wurde das ganze nicht so angezeigt…

Freundliche Grüsse
Mario

Hallo

Vielen dank für deine Hilfe, da ganze funktioniert genau so wie ich das wollte.

Freundliche Grüsse
Mario

Und ich melde mich wieder einmal, das ganze sieht zwar gelistet korrekt aus bei der formatierung über css stellte sich jedoch ein kleiner fehler heraus, habe das ganze nach PHP „verschoben“
/t/mysql-abfrage-mit-php–2/5847062