Nach Zahl ordnen

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

  • Nach Zahl ordnen

    Hallo,

    hab ein Tabelle mit "Name" und "km"?
    Möchte die Namen nach "km" orden lassen. Also erst die Namen mit 1200km, dann mit 1145 etc...
    Wie geht das?

    MIt desc/asc hat er es immer nur nach den ersten Zahlen gemacht: 1, 1232, 3, 3455, etc.

    Es soll aber der Grösse nach gehen...


    Philipp
    MfG

    das Muesli

  • #2
    dann aender mal das feld von "km" auf den typ int ...

    weil das hoert sich an , als haetteest du es als char/varchar gespeichert


    gruss
    iglo


    btw.:
    solltest mal auf www.mysql.com vorbeischauen und dort nach den typen
    (int, tinyint etc. ) schauen, um rauszufinden , womit du den wenigsten speicherbedarf hast ... weiss ja net wie gross deine zahlen werden ...

    Zuletzt geändert von kapitaeniglo; 24.08.2003, 15:47.

    Kommentar


    • #3
      Danke, das wars!!
      MfG

      das Muesli

      Kommentar


      • #4
        np

        so nen fehler ist mir auch mal am anfang mit mysql passiert

        gruss
        iglo

        Kommentar


        • #5
          Es klappt, aber er gibt immer nur Werte aus, die kleiner als tausend sind bzw. weniger als 4 Stellen haben.
          Wenn ich Order by desc weglasse, ist alles da, komischerweise, mit desc nur alles unter tausend...
          MfG

          das Muesli

          Kommentar


          • #6
            ´hmmmm ... kannste mal deine dbstruktur posten ...

            wenn du phpmyadmin hast, kannste die recht leicht exportieren ...

            also bei mir klappt das mit DESC auch bei groesseren zahlen recht gut

            Kommentar


            • #7
              Original geschrieben von Muesli
              Es klappt, aber er gibt immer nur Werte aus, die kleiner als tausend sind bzw. weniger als 4 Stellen haben.
              stehen denn in der tabelle nach dem konvertieren des spaltentyps noch alle werte drin?

              hast du eventuell für den spaltentyp einen zu kleinen int-typ gewählt?
              standen vorher punkte als tausender-trennzeichen in den zahlen?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Hi,

                Struktur der DB:

                CREATE TABLE wsvg_jug_statistik (
                id int(11) NOT NULL auto_increment,
                name text NOT NULL,
                km int(11) DEFAULT '0' NOT NULL,
                jahr varchar(5) NOT NULL,
                PRIMARY KEY (id)
                );

                Anders konnte ich es nicht ausgeben lassen mit phpmyadmin


                Die Abfrage:
                $Query = "SELECT * FROM wsvg_jug_statistik WHERE jahr='$jahr' ORDER BY km DESC";


                Die Variable Jahr wird mit dem Aufruf der Seite übergeben:

                index.php4?content=statistik.php4&aktion=show&jahr=2003


                Dazu muss ich noch sagen, dass die Abfrage in der Funktion show steht.
                MfG

                das Muesli

                Kommentar


                • #9
                  Original geschrieben von wahsaga
                  stehen denn in der tabelle nach dem konvertieren des spaltentyps noch alle werte drin?

                  hast du eventuell für den spaltentyp einen zu kleinen int-typ gewählt?
                  standen vorher punkte als tausender-trennzeichen in den zahlen?
                  ja, werte waren noch da, hab int gewählt, das müsste ja reichen, trennzeichen waren keine da.

                  Sowas ist mir noch nie passiert
                  MfG

                  das Muesli

                  Kommentar


                  • #10
                    keine ahnung was bei dir net klappt ...

                    hab eben deine tabellenstruktur bei mir eingefuegt ... 5 testdatensaetze geschreiben (zu mehr hatte ich grad keine lust)
                    und in phpmyadmin eben nen statemant erstellt ...

                    PHP-Code:
                    SELECT 
                    FROM `wsvg_jug_statistik
                    WHERE jahr 2003
                    ORDER BY km DESC


                    und er hat die richtig sortiert

                    also ich kann dir da auch nciht weiterhelfen ... sorry

                    gruss
                    iglo

                    Kommentar


                    • #11
                      Hi,

                      also, ich hab jetzt den Wert, der grösser ist als Tausend rausgeholt und dabei gemerkt, dass es garnicht an der Grösse der Zahl liegt.
                      Ich habe insgesamt 19 Einträge für das Jahr 2001 in der DB.
                      Den Tausender Wert hab ich gegen 550 ersetzt, und siehe da, er zeigt den Namen an, aber dafür fehlt ein anderer.
                      Er zeigt also immer nur 18 statt 19 an, egal welche Zahl der Name hat.

                      Ich habe weder einen LIMIT Befehl o.ä. in meiner Abfrage.

                      Ich versuch heute Abend mal, MySQL neuzuinstallieren und melde mich dann nochmal...

                      Philipp
                      MfG

                      das Muesli

                      Kommentar


                      • #12
                        wenn du die abfrage in phpmyadmin mac hst, wieviel einträge bekommst du dann?
                        18 oder 19?

                        wie sieht dein php-skript aus?
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          In phpmyadmin sehe ich alle 19 Einträge.

                          Script:

                          function show()
                          {
                          include("config.inc.php4");

                          //Auslesen der Datenbank.

                          $Query = "SELECT * FROM wsvg_jug_statistik WHERE jahr='2001' ORDER BY km DESC";
                          if (!($ergebnis = mysql_query ($Query, $verbindung))) {
                          echo("Die Abfrage ist fehlgeschlagen!<P>");
                          echo("Ihre Abfrage $Query war nicht erfolgreich!<P>");
                          exit();
                          }

                          //Ausgabe der Daten.

                          while ($zeile = mysql_fetch_object ($ergebnis)) {


                          echo("<table width=100% border=0 cellspacing=0 cellpadding=0 align=center>
                          <tr>
                          <td> <br>
                          <table width=95% border=0 cellspacing=0 cellpadding=0 align=center>
                          <tr>
                          <td> <font size=1 face=Verdana, Arial, Helvetica, sans-serif color=#000000><b><font size=2 color=#006600>S</font><font color=#006600>tatistik</font></b></font>
                          <hr align=center width=100% size=1 noshade>
                          <table width=100% border0 cellspacing=2 cellpadding=2>
                          <tr>
                          <td width=40% ><b><font face=Verdana, Arial, Helvetica, sans-serif size=2 color=#006600>Name</font></b></td>
                          <td width=61% ><b><font face=Verdana, Arial, Helvetica, sans-serif size=2 color=#006600>Kilometer</font></b></td>
                          </tr>");

                          while ($zeile = mysql_fetch_object ($ergebnis)) {

                          echo("<tr>
                          <td width=40% ><font face=Verdana, Arial, Helvetica, sans-serif arial,=arial, helvetica,=helvetica, sans-serif=sans-serif size=2 color=#006600>$zeile->name</font></td>
                          <td width=61% ><font face=Verdana, Arial, Helvetica, sans-serif arial,=arial, helvetica,=helvetica, sans-serif=sans-serif size=2 color=#006600>$zeile->km</font></td>
                          </tr>");
                          }
                          echo("</table>
                          <br>
                          <table width=100% border=0 cellspacing=0 cellpadding=0 align=center>
                          <tr>
                          <td>
                          <div align=center><font color=#006600 face=Verdana, Arial, Helvetica, sans-serif size=2>-
                          <a class=main href=?content=statistik.php4&aktion=auswahl>zur&uuml;ck</a> -</font></div>
                          </td>
                          </tr>
                          </table>
                          </td>
                          </tr>
                          </table>

                          <p>&nbsp;</p></td>
                          </tr>
                          </table>");
                          }

                          //Bestehende Verbindung beenden.
                          mysql_free_result($ergebnis);
                          mysql_close($verbindung);
                          }
                          MfG

                          das Muesli

                          Kommentar


                          • #14
                            wozu zweimal
                            while ($zeile = mysql_fetch_object ($ergebnis))
                            ?

                            mach das erste raus
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              Asche auf mein Haupt, ich hab das gestern Abend schon raus gemacht, aber anscheinend nicht gespeichert.

                              Funktioniert jetzt, danke!!!!!!!!

                              Philipp
                              MfG

                              das Muesli

                              Kommentar

                              Lädt...
                              X