Auslesen und nach 2 dingen sortieren...

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

  • Auslesen und nach 2 dingen sortieren...

    Moin leute also ich hab da folgende überlegung angestellt:

    inner mysql db hab ich viele leute die unter anderem id,name usw habe (standart halt) und etz hab ich da ein feld in dem ich infos so speicher:

    AB:123
    CD:111
    AB:128
    EF:333
    usw....

    etz will ich das ganze ausgeben. wenn ich z.b. nen link klick sollen nur die "AB" leute ausgegeben werden, aber sie sollen auch noch nach der größer der nachfolgenden zahl sortiert werden!

    wie mach ich das den am besten?

    hab nochnet soviel ahnung mit mysql... ich muss ne while machen denk ich und dann den string teilen lassen aber wie ich das genau machen soll
    Man lernt nie aus...

    ...und wenn man's doch tut braucht man sich auch nicht schämen!

  • #2
    PHP-Code:
    mysql_query("SELECT * FROM tabelle WHERE bedingung=true ORDER BY spalte1,spalte2"); 
    Bewirkt, dass das ganze zuerst nach spalte1 sortiert wird und die untersortierung nach spalte2 vorgenommen wird, also das, was du willst
    hopka.net!

    Kommentar


    • #3
      hm hab das aber in einer spalte stehen!
      Man lernt nie aus...

      ...und wenn man's doch tut braucht man sich auch nicht schämen!

      Kommentar


      • #4
        hmm also hast du das AB:123 in einer Spalte stehn? das ist ne ziemlich ungeschickte lösung.

        Aber probiers mal so:
        PHP-Code:
        mysql_query("SELECT * FROM tabelle WHERE bedingung=true ORDER BY spalte1"); 
        hopka.net!

        Kommentar


        • #5
          naja ich kanns ja noch ändern aber ich dachte mir ich könnte das in 2 strings teilen, also:

          AB 123

          und dann durch ne while sagen das er erstma alle teilen soll, dann nur die AB (oder CD je nachdem) behalten soll und dann die nach 123 usw ordnen soll... geht das net so?

          edit:
          also genauer: *fg*

          er soll mit ereg nach übereinstimmungen finden die bis zu dem ":" gehen und wie lass ich ihn dann die zahlen noch sortieren und ausgeben?

          edit 2: *g*

          mir is was eingefallen mal fragen ob ich das so machen könnte:

          ich erstell einfach dann nochne schleife die in der ersten drin is... in der er erst den wert *:1 sucht und dann füge ich zur $zahl (wert: 1) 1 hinzu und fang neu an und lass dann quasi *:2 suchen und ausgeben und dann $zahl (wert: 2) +1 und wieder neu und falls 3 z.b. net existiert einfach überspringen bis es keine sachen mehr gibt...

          ginge das?
          Zuletzt geändert von BloodReaver; 11.06.2003, 12:43.
          Man lernt nie aus...

          ...und wenn man's doch tut braucht man sich auch nicht schämen!

          Kommentar


          • #6
            Ich weiß zwar nicht genau, was du willst, aber vielleicht klappt es ja, wenn du erstmal ne Schleife macht, die alle Werte, die mit AB beginnen in ein Array kopierst, und dieses Array dann hinterher sortierst.
            PHP-Code:
            while ($row mysql_fetch_array($mysql_result)
            {
              if (
            substr($row['spalte'], 02) == "AB"// Wenn die ersten beiden Buchstaben "AB" sind
                
            $ab[] = substr($row['spalte'], -3); // Die letzten 3 Zeichen kopieren
            }

            sort($ab); // sortieren 
            das AB brauchst du ja nicht extra noch mitspeichern, weil du ja weißt, dass das bei allen eh dabeisteht.

            Wobei man das Filtern auch irgendwie in die MySQL-Abfrage integrieren kann, ich weiß dass es geht, nur nicht wie
            hopka.net!

            Kommentar


            • #7
              wieso nicht

              SELECT * FROM tabelle WHERE feld like 'AB:%' order by feld

              Kommentar


              • #8
                PHP-Code:
                while ($row mysql_fetch_array($mysql_result)
                {
                  if (
                substr($row['spalte'], 02) == "AB"// Wenn die ersten beiden Buchstaben "AB" sind
                    
                $ab[] = substr($row['spalte'], -3); // Die letzten 3 Zeichen kopieren
                }

                sort($ab); // sortieren 
                jo also ich glaub so sollte es gehen!
                muss ich 'spalte' ersetzen? und wie könnte ich dann $ab ausgeben lassen?

                PHP-Code:
                while($ab['$wert'])
                {
                 echo 
                $ab['$wert'])."<br />";
                 
                $wert++

                ginge die ausgabe so?
                Man lernt nie aus...

                ...und wenn man's doch tut braucht man sich auch nicht schämen!

                Kommentar


                • #9
                  würde das bewirken vita das es so rauskommen würde:

                  AB:1
                  AB:2
                  AB:3
                  usw...

                  ???
                  Man lernt nie aus...

                  ...und wenn man's doch tut braucht man sich auch nicht schämen!

                  Kommentar


                  • #10
                    also nur zur Ausgabe macht man es so:
                    PHP-Code:
                    print_r($ab); 
                    Das schreibt allerdings nur das Array raus, du kannst damit nix mehr machen.
                    Besser geht es so:
                    PHP-Code:
                    for($n=0$n<count($ab); $n++) // count liefert die Anzahl der Elemente von ab, weil der index aber bei 0 anfängt, muss ein < Zeichen stehen anstatt von <=
                    {
                      echo 
                    $ab[$n]; // Hier kannnst du auch was anderes hintun

                    ist auch noch nicht die elgeganteste Lösung, aber für Anfänger am besten zu verstehen.
                    Der Vollständigkeit halber:
                    PHP-Code:
                    foreach ($ab as $temp)
                    {
                      echo 
                    $temp// kannst du verändern.

                    lies dir am besten die entsprechenden Teile im PHP-Handbuch durch:
                    http://php.net/count
                    http://php.net/foreach
                    http://php.net/array
                    hopka.net!

                    Kommentar


                    • #11
                      ahjo etz hab ich glaub ich die nötigen infos!

                      ps: bin kein anfänger mir fehlt nur noch aweng das wissen was es alles gibt... weil "count" oder so spezielle sachen sind mir einfach nochnet bekannt und das bricht mir immer das genick wenn ich was mach und dann muss ich immer fragen...
                      Man lernt nie aus...

                      ...und wenn man's doch tut braucht man sich auch nicht schämen!

                      Kommentar


                      • #12
                        kannst zur not auch im PHP-Handbuch nachlesen. Ich hab mir fast alles was ich über PHP weiß selber beigebracht mit Hilfe des PHP-Handbuchs oder durch irgendwelche Beispielscripte. Ein echtes Buch hab ich nie benutzt.
                        hopka.net!

                        Kommentar


                        • #13
                          wenigstens bin ich lernfähig

                          hier mein fertiges teil:


                          PHP-Code:
                          <?php
                          require("connect.inc.php");

                          $query = @mysql_query("SELECT koords FROM `test` WHERE 1") or die('query pud!');

                          while (
                          $row mysql_fetch_array($query))
                          {
                              if (
                          substr($row['koords'], 02) == "AB")
                                  
                          $ab[] = substr($row['koords'], -3);
                          }

                          sort($ab); // sortieren

                          for($n=0$n<count($ab); $n++) 
                          {
                            
                          $query = @mysql_query("SELECT id, user FROM `test` WHERE koords = 'AB:".$ab[$n]."'") or die('query2 pud!');
                            while (
                          $line mysql_fetch_object($query))
                            {
                                echo 
                          $line->user." ";
                                echo 
                          $line->id." ";
                                echo 
                          $ab[$n]."<br />";
                            }
                          }
                          ?>
                          "ab" muss halt dann noch durch ne vari ersetzt werden damit man z.b. noch alle "cd"s ausgeben kann aber das is ja etz nix wirkliches mehr...

                          Danke für eure hilfe!
                          Zuletzt geändert von BloodReaver; 11.06.2003, 14:01.
                          Man lernt nie aus...

                          ...und wenn man's doch tut braucht man sich auch nicht schämen!

                          Kommentar


                          • #14
                            der beste vorschlag (natürlich von mir) bleibt natürlich wieder unbeachtet

                            Kommentar


                            • #15
                              ja ich hab ja keine antwort auf meine frage bekommen!

                              aber wennst mir noch eine geben würdest, dann würd ich mich immernoch freuen...
                              Zuletzt geändert von BloodReaver; 11.06.2003, 14:19.
                              Man lernt nie aus...

                              ...und wenn man's doch tut braucht man sich auch nicht schämen!

                              Kommentar

                              Lädt...
                              X