michael: DB-Ausgabe Gruppieren

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

  1. 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

    --
    »Wenn die meisten sich schon armseliger Kleider und Möbel schämen, wieviel mehr sollten wir uns da erst armseliger Ideen und Weltanschauungen schämen.« - Albert Einstein
    Selfcode: sh:) fo:| ch:| rl:° br:> n4:{ ie:% mo:} va:| de:< zu:| fl:( ss:) ls:& js:|
    1. 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

      1. 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 =:-)

        1. 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

          1. Hallo Michael!

            Ohne Code werden wir hier nicht weiter kommen (inkl. Query) ...

            mfg

            norbert =:-)