DB-Ausgabe Gruppieren
michael
- php
0 Achim Schrepfer0 michael0 norbert =:-)0 michael
Hi
ich habe eine Abfrage aus de DB und möchte diese gruppiert ausgeben
$sql = mysql_query("SELECT * FROM $table")
while ($zeile = mysql_fetch_array($sql))
{
$zeile["text"]."<br>";
}
ich hätte gerne die Anzeige wie folgt
if Online
{
Online<br>
zeile["text"]."<br>"; // alles was zu Online gehört
}
else if Admin
{
<br>
<br>
Admin<br>
zeile["text"]."<br>"; // alles was zu Admin gehört
}
else Service
{
<br>
<br>
Admin<br>
zeile["text"]."<br>"; // alles was zu Servicegehört
}
Danke für einen Tipp
Hi,
ich habe eine Abfrage aus de DB und möchte diese gruppiert ausgeben
das ist ein nobles Anliegen, aber der Code, den Du gepostet hast ist noch nicht gelaufen, oder? So wie es aussieht, willst Du doch nur Sortieren, oder? Dann könntest Du im SQL-Statement ORDER BY benutzen. Das sortiert natürlich nur alphabetisch, aber Du kannst die Sortierfolge auch mit einem Trick beeinflussen:
SELECT FIELD(text,'Online','Admin','Service') AS index, * FROM $table ORDER BY index;
Mit FIELD() kannst Du eine Spalte der Tabelle angeben und eine Liste mit Inhalten. Die Funktion liefert für den jeweiligen Feldinhalt einen Index zurück, der deiner Liste entspricht. Danach kann man dann mit ORDER BY sortieren.
viele Grüße
Achim Schrepfer
hi
klar sortieen ist klar,
aber auch so gruppieren wie ich es angegeben hatte
das ist nur ein Muster:
if Online
{
Online<br>
zeile["text"]."<br>"; // alles was zu Online gehört
}
else if Admin
{
<br>
<br>
Admin<br>
zeile["text"]."<br>"; // alles was zu Admin gehört
}
else Service
{
<br>
<br>
Admin<br>
zeile["text"]."<br>"; // alles was zu Servicegehört
}
Online
Text für online
Text für online
Text für online
Admin
Text für Admin
Text für Admin
Text für Admin
Servie
Text für Service
Text für Service
...
Danke
Hallo Achim!
Du möchtest die Daten definitiv nur sortieren - gruppieren wäre zB
Online: 5 User
Admin: 3 User
Service: 2 User
Was Du suchst, wird oft als Gruppenwechsel bezeichnet. Also zuerst sortieren und danach bei jeder Änderung des "Gruppierbegriffes" eine Überschrift ausgeben.
Also zB:
$gruppe = '';
while ($zeile = mysql_fetch_array($sql))
{
/* neue Gruppe? */
if ($gruppe != $sortierfeld)
{
/* Überschrift ausgeben und Gruppe für nächsten Vergleich merken */
print('<b>' . $sortierfeld . '</b><br>' . "\n");
$gruppe = $sortierfeld;
}
/* Zeile immer ausgeben - nur manchmal davor eben die Überschrift */
print($zeile["text"]."<br>");
}
mfg
norbert =:-)
Hi
habe es so übernommen nur jetzt
bring er bei jeder ausgegebenen Zeile die Überschrift
somit ist die Überschrift Admin so oft ausgegebn wie auch der dazu passende Inhalt
nur jeweils eine Überschrift
Hallo Michael!
Ohne Code werden wir hier nicht weiter kommen (inkl. Query) ...
mfg
norbert =:-)