2 Spalten einer Tabelle alphabetisch sortiert anzeigen lassen

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

  • 2 Spalten einer Tabelle alphabetisch sortiert anzeigen lassen

    Hallo,

    ich habe folgendes Problem, woran ich jetzt seit 14 Stunden sitze, und ich glaube, ich steh auf'm Schlauch:

    Ich habe folgende Tabelle (stadt):

    spalte 1 | spalte 2 |
    -----------------------
    München | Osnabrück |
    Wuppertal | Ahaus |

    Die Ausgabe soll folgendermaßen (alphabetisch) erfolgen:

    Ahaus
    München
    Osnabrück
    Wuppertal

    Ich hab da schon alles versucht, Arrays etc.

    Ich krieg es nur hin, das die einzelne Spalte oder die Zeile alphabetisch sortiert angezeigt wird.

    Weiss von Euch jemand Rat (ich werd nämlich bald verrückt).

    1001 Dank im Voraus

    Stefan

  • #2
    Re: 2 Spalten einer Tabelle alphabetisch sortiert anzeigen lassen

    Original geschrieben von schranzbaum
    Ich hab da schon alles versucht
    Ich seh's...

    Was für eine Tabelle?
    mySQL? HTML? Text?

    Wo sind deine Versuche?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Hallo,

      das Ganze ist eine mySQL-Tabelle.

      Ich habe versucht, das Problem über order by zu lösen, das haut aber nicht hin. Dann habe ich versucht, mir die Ausgabe in ein Array zu schreiben, aber ich bekomme die Daten aus dem Array nur innerhalb meiner while-Schleife zu sehen. Es muss doch irgendwie möglich sein, das ich mir den Inhalt der Spalte 1 auslesen lasse, das Ganze in ein Array schreibe, dann Spalte 2 ebenso in ein Array. Dann dachte ich, das ich mit array_merge diese Arrays verbinden kann und anschliessend über asort sortieren lassen kann. Aber ich bin einfach überfragt. Ich hatte heute morgen gedacht, das ganze wäre ein kurzfristige Sache, aber dem war wohl nicht so.

      Vielen Dank
      Stefan

      Kommentar


      • #4
        ist ne kurzfristige sache, geht wunderbar mit php

        deine fehlerbeschreibung kann ich abernicht nachvollziehen, könnte auch am fehlenden code liegen
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          vielleicht ist ja mein Denkansatz auch komplett falsch?

          Es gibt ja keine Fehlermeldungen, es funzt nur nicht.

          Auf das o.g. Beispiel bezogen bekomme ich nur folgende Ergebnisse:

          Entweder:

          München
          Osnabrück

          Ahaus
          Wuppertal

          oder

          München
          Wuppertal

          Ahaus
          Osnabrück

          es müsste aber anders sein.

          Ich bräuchte wirklich einen Tipp, ich habs mit array_multisort versucht, aber ich habe da irgendwo eine totale Denkblokade.

          $sql="select * from stadt order by stadt_1";
          $res = send_sql("xxx", $sql);
          while($row = mysql_fetch_array ($res))
          {
          $array = array ("$row[stadt_1]");
          echo $array[0]."<br>";

          //Ausgabe = München<br>Wuppertal
          }


          nach der while-Schleife kann ich nicht mehr auf die Daten des Array zugreifen

          echo $array[0]."<br>";
          Ausgabe = Wuppertal

          Ich habe irgendwie daran gedacht, die Daten des Array in eine neue Variable zu übertragen, aber das klappt auch alles nicht. Ich wäre für einen heissen Tipp sehr dankbar, denn ich häng da seit 6.00 Uhr heute morgen dran.

          Stefan

          Kommentar


          • #6
            ich hab heut meinen gutmütigen
            PHP-Code:
            $sql 'SELECT spalte1, spalte2
            FROM tabelle'
            ;
            $staedte = array();
            $r mysql_query($sl) or die(mysql_error);
            while (
            $row mysql_fetch_assoc($r)) {
              
            $staedte[] = $row['spalte1'];
              
            $staedte[] = $row['spalte2'];
            }
            natcasesort($staedte); 
            (ungetestet)
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Hallo, vielen Dank erstmal, aber das funktioniert leider auch nicht, es werden nur die Inhalte der ersten Spalte ausgelesen.
              Ich werde mir wohl morgen eine andere Alternative zu der bestehenden Datenbank ausdenken, denn anscheinend ist das wohl nicht so einfach, wie ich das heute morgen in meinem jugendlichen Leichtsinn angenommen hatte.

              Liebe Grüße

              Kommentar


              • #8
                schreib in die while-schleife mal
                PHP-Code:
                print_r($row); 
                was gibt der aus?
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  innerhalb der Schleife:

                  Array ( [0] => Duisburg [stadt_1] => Duisburg [1] => [stadt_2] => )
                  Array ( [0] => Essen [stadt_1] => Essen [1] => [stadt_2] => )
                  Array ( [0] => Bottrop [stadt_1] => Bottrop [1] => Gladbeck [stadt_2] => Gladbeck )
                  usw.


                  ausserhalb der Schleife:

                  natcasesort($staedte);
                  print_r($staedte);

                  Ausgabe:

                  Array ( [7] => [59] => [41] => [43] => [5] => [15] => [1] => [3] => [28] => Ahaus [46] => Bielefeld [12] => Bocholt ) usw.


                  Ausserhalb der Schleife wird die erste Spalte sortiert angezeigt, innerhalb der Schleife werden die Spalten 1 und 2 angezeigt, aber unsortiert.

                  Seltsam

                  Stefan

                  Kommentar


                  • #10
                    Wenn ich mir deine Ausgabe so anschaue, dann verwendest du nicht meinen Code. Seltsam.
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Hallo, nicht ganz, da ich sonst die Fehlermeldung mysql_error erhalte,
                      hier der code:


                      <?
                      include ("connect.php3");
                      include ("get_id.php3");
                      include ("send_sql.php3");

                      $sql = 'SELECT stadt_1, stadt_2 from stadt';
                      $staedte = array();

                      $r = send_sql("de26568", $sql);
                      while ($row = mysql_fetch_assoc($r))
                      {
                      $staedte[] = $row['stadt_1'];
                      echo "<br>";
                      $staedte[] = $row['stadt_2'];
                      print_r($row);
                      }

                      echo "<br>";
                      echo "<br>";
                      natcasesort($staedte);
                      print_r($staedte);
                      ?>

                      Ausgabe innerhalb z.B.:

                      Array ( [title_stadt_1] => Bottrop [title_stadt_2] => Gladbeck )
                      Array ( [title_stadt_1] => Viersen [title_stadt_2] => Kempen )
                      Array ( [title_stadt_1] => Bocholt [title_stadt_2] => Borken )

                      Ausgabe ausserhalb z.B.:

                      Array ([28] => Ahaus [46] => Bielefeld [12] => Bocholt [52] => Bochum [13] => Borken [8] => Bottrop [55] => Castrop-Rauxel [30] => Coesfeld [31] => Dülmen [58] => Düsseldorf [38] => Dormagen [34] => Dorsten [14] => Dortmund [0] => Duisburg [19] => Emmerich [2] => Essen [47] => Gütersloh [17] => Geldern [9] => Gladbeck [40] => Greven [32] => Hückeswagen [35] => Haltern [54] => Herne [51] => Hilden [45] => Kamp-Lintfort [11] => Kempen [16] => Kevelaer [18] => Kreis Wesel [27] => Langenfeld [42] => Leichlingen [56] => Mönchengladbach [4] => Mülheim an der Ruhr [36] => Münster [21] => Marl [50] => Mettmann [44] => Moers [26] => Monheim [57] => Neuss [6] => Oberhausen [23] => Radevormwald [48] => Ratingen [20] => Recklinghausen [25] => Remscheid [39] => Rommerskirchen [24] => Solingen [29] => Stadtlohn [49] => Velbert [10] => Viersen [37] => Warendorf [53] => Wattenscheid [33] => Wermelskirchen [22] => Wuppertal )

                      Kommentar


                      • #12
                        Original geschrieben von schranzbaum
                        Ausgabe ausserhalb z.B.:

                        Array ([28] => Ahaus [46] => Bielefeld [12] => Bocholt [52] => Bochum [13] => Borken [8] => Bottrop [55] => Castrop-Rauxel [30] => Coesfeld [31] => Dülmen [58] => Düsseldorf [38] => Dormagen [34] => Dorsten [14] => Dortmund [0] => Duisburg [19] => Emmerich [2] => Essen [47] => Gütersloh [17] => Geldern [9] => Gladbeck [40] => Greven [32] => Hückeswagen [35] => Haltern [54] => Herne [51] => Hilden [45] => Kamp-Lintfort [11] => Kempen [16] => Kevelaer [18] => Kreis Wesel [27] => Langenfeld [42] => Leichlingen [56] => Mönchengladbach [4] => Mülheim an der Ruhr [36] => Münster [21] => Marl [50] => Mettmann [44] => Moers [26] => Monheim [57] => Neuss [6] => Oberhausen [23] => Radevormwald [48] => Ratingen [20] => Recklinghausen [25] => Remscheid [39] => Rommerskirchen [24] => Solingen [29] => Stadtlohn [49] => Velbert [10] => Viersen [37] => Warendorf [53] => Wattenscheid [33] => Wermelskirchen [22] => Wuppertal )
                        gut, und was gibt's da jetzt noch, was dem herrn an der sortierung missfällt ...?
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          ich fass es nicht, ich hab das gar nicht mehr gesehen, das in der unteren Ausgabe die Städte der 2. Spalte mit einsortiert waren. Yippieh.
                          Und mit (ausserhalb der Schleife):

                          usort($staedte,"strnatcmp");
                          for($x=0;$x<count($staedte);$x++) {
                          echo $staedte[$x];
                          echo "<br>"; }

                          gibts diese Ausgabe:

                          Ahaus
                          Bielefeld
                          Bocholt
                          Bochum
                          Borken
                          Bottrop

                          Ich danke euch 1000 fach, jetzt kann ich geruhsam ins Bett gehen. YIPPIEH
                          Zuletzt geändert von schranzbaum; 09.02.2005, 21:49.

                          Kommentar


                          • #14
                            Einen habe ich noch:

                            ...hier sind diverse formulardaten und die sql-Abfrage...

                            <?php
                            usort($staedte,"strnatcmp");
                            for($x=0;$x<count($staedte);$x++)
                            {
                            echo "<option>";
                            echo $staedte[$x];
                            echo "</option>";
                            }
                            ?>

                            ...hier wird das Formular beendet

                            In einer Formular-Liste finde ich jetzt alle meine Städte alphabetisch sortiert, aber z.B. Düsseldorf steht vor Datteln:

                            Coesfeld
                            Dülmen
                            Düsseldorf
                            Datteln

                            Wenn ich das ganze anstelle des obigen codes mit

                            <?php
                            natcasesort($staedte);
                            print_r($staedte);
                            ?>

                            mache, hab ich die gleiche unsortierte Ausgabe:

                            Array ( [37] => Coesfeld [38] => Dülmen [72] => Düsseldorf [24] => Datteln )

                            Ist da noch jemand schlauer?

                            Stefan

                            PS: Das Problem ist, das die Daten aus der Liste weiterverarbeitet werden, deshalb kann ich z.B. kein ä durch ae ersetzen, bzw. sollen Szädte wie Moers ja nicht in Mörs umgewandelt werden.
                            Zuletzt geändert von schranzbaum; 10.02.2005, 10:30.

                            Kommentar


                            • #15
                              Könntest du freundlicherweise mal php-Tags benutzen?

                              Kommentar

                              Lädt...
                              X