[MySQL 4.1] Zeilen anhand von Spalten kategorisieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MySQL 4.1] Zeilen anhand von Spalten kategorisieren

    Huhu,

    also... ich habe eine Tabelle nach folgendem Schema:

    id | wert1 | wert2

    ..., die z.B. folgende Zeilen hat:

    4 | lalala | cat1
    6 | lululu | cat3
    7 | hihihi | cat2
    8 | hohoho | cat1
    9 | blubb | cat2
    10 | nanana | cat1

    nun möchte ich die Zeilen auslesen und anhand wert2 kategorisieren, dies allerdings dynamisch! Also NICHT für jede Kategorie extra ein "SELECT * FROM tabelle WHERE wert2='cat2'" z.B.., da wert2 dynamisch eingetragen wird nach diversen Kriterien, Datum z.B, aber das ist ja eigentlich nicht relevant.

    Die Ausgabe soll dann z.B. folgendermaßen realisierbar sein:

    cat1:
    - nanana
    - hohoho
    - lalala
    cat2:
    - blubb
    - hihihi
    cat3:
    - lululu

    Dies habe ich bereits getan, allerdings habe ich dafür erstmal ALLE Einträge ausgelesen, ohne Kriterien, durch eine WHILE-Schleife gejagt und immer $row[wert2] einem Array hinzugefügt, dann array_unique auf das Array angewendet, so dass doppelte Einträge flöten gehen, Array sortiert und dann durch eine foreach $array as $bla geschickt und für jedes "SELECT * FROM tabelle WHERE wert2='$bla'". Das klappt soweit so gut, allerdings glaube ich festzustellen, dass die Ladezeit dadurch enorm ansteigt...

    ... ist diese Kategorisierung evtl. per MySQL schon beim SELECT'n möglich?

  • #2
    Code:
    SELECT wert2, wert1 FROM tabelle ORDER BY wert2, wert1
    den rest machst du dann mit php
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Original geschrieben von Abraxax
      Code:
      SELECT wert2, wert1 FROM tabelle ORDER BY wert2, wert1
      den rest machst du dann mit php
      So hatte ich es ganz am Anfang, aber wert2 soll ja als Kategorie dienen und dementsprechend nur einmal in der Ausgabe auftauchen als eigene, optisch abgehobene, Zeile in einer HTML-Tabelle z.B., was ich nicht hinbekam.

      Aber ich probiere es dann nochmal, danke.

      Kommentar


      • #4
        warum zitierst du alles? meinst du ich kann den zusammenhang sonst nicht mehr herstellen?


        und was deine ausgabe angeht....

        PHP-Code:
        $sql 'SELECT ....';
        $res mysql_query($sql) or die(mysql_error());
        $temp '';
        while (
        $row mysql_fetch_array($res))
        {
           if (
        $temp!=$row['wert2'])
           {
               
        $temp $row['wert2'];
               echo 
        $row['wert2'].'<br />';
           }
           echo 
        '---- '.$row['wert1'].'<br />';

        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Ich habe alles zitiert damit, falls während ich am Antworten war noch jemand gepostet hätte, evtl. mit Code, der Zusammenhang noch erkennbar ist, aber ok, ich lasse es in Zukunft, wenn es so schlimm sein sollte.

          Aber dein Code hat weitergeholfen, danke.

          Kommentar


          • #6
            das zitieren an sich ist schon ne gute sache, da stimme ich dir zu. nur sollte man es 'sinnvoll' einsetzen. also nur die relevanten punkte nehmen.... ok?


            das dir mein code hilft, war abzusehen....

            viel spass damit.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar

            Lädt...
            X