warum sortiert er nicht?

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

  • warum sortiert er nicht?

    PHP-Code:
    <?php

    $dbserver 
    "localhost";
    $dbname "";
    $dbuser "";
    $dbpass "";

    $connect mysql_connect($dbserver$dbuser$dbpass);
    mysql_select_db($dbname$connect);

    $result mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as termin FROM almuth ORDER BY datum DESC");

    if(
    $result)
    {
    echo 
    "<table width='1000' cellspacing='1'>\n";
    while(
    $row mysql_fetch_array($result))
    {
    echo 
    "<tr>";
    echo 
    "<td bgcolor='#006633'>" strftime("%d.%m.%Y",$row[termin]) . "</td><td bgcolor='#006633'>" $row[titel] . "</td><td bgcolor='#006633'>" $row[zeit] . "</td><td bgcolor='#006633'>" $row[genre] . "</td><td bgcolor='#006633'>" $row[kontakt] . "</td>";
    echo 
    "</tr>\n";
    }
    echo 
    "</table>\n";
    mysql_free_result($result);


    ?>
    Warum gibt er die Einträge nicht nach dem Datum was man eingibt aus? Also das aktuellste oben, und wenn ein Tag vorbei ist dann das nächste aktuellste oben?

    Meine Daten oben dbuser und so habe ich mit Absicht rausgenommen.

  • #2
    Re: warum sortiert er nicht?

    Original geschrieben von friedemann
    PHP-Code:
    <?php

    $dbserver 
    "localhost";
    $dbname "";
    $dbuser "";
    $dbpass "";

    $connect mysql_connect($dbserver$dbuser$dbpass);
    mysql_select_db($dbname$connect);

    $result mysql_query("SELECT *, UNIX_TIMESTAMP(datum,'%d.%m.%Y') as termin FROM almuth ORDER BY datum DESC");

    if(
    $result)
    {
    echo 
    "<table width='1000' cellspacing='1'>\n";
    while(
    $row mysql_fetch_array($result))
    {
    echo 
    "<tr>";
    echo 
    "<td bgcolor='#006633'>"$row[termin]. "</td><td bgcolor='#006633'>" $row[titel] . "</td><td bgcolor='#006633'>" $row[zeit] . "</td><td bgcolor='#006633'>" $row[genre] . "</td><td bgcolor='#006633'>" $row[kontakt] . "</td>";
    echo 
    "</tr>\n";
    }
    echo 
    "</table>\n";
    mysql_free_result($result);


    ?>
    Probier das mal so.
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #3
      Mit deiner lösung zeigt er gar kein php mehr an. also er gibt nichts mehr aus.

      anseheh

      schau mal, warum setzt er nicht den 09 bzw den 10 an die erste stelle, denn die kommen ja eher als 12 und 13. das ist mein problem. (ich habe erst 12+13 dann 10 eingegeben)

      Kommentar


      • #4
        Er zeigt mir was an. Siehe Grafik. War auch nur eine Möglichkeit. Wie speicherst du das Datum und die uhrzeit in der DB?
        Angehängte Dateien
        *winks*
        Gilbert
        ------------------------------------------------
        Hilfe für eine Vielzahl von Problemen!!!
        http://www.1st-rootserver.de/

        Kommentar


        • #5
          Poste mal das Script
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #6
            Original geschrieben von friedemann
            schau mal, warum setzt er nicht den 09 bzw den 10 an die erste stelle, denn die kommen ja eher als 12 und 13. das ist mein problem. (ich habe erst 12+13 dann 10 eingegeben) [/B]
            Es wird doch nach dem Datum sortiert.
            Die jüngsten Daten zuerst.

            Wonach willst Du denn nun eigentlich sortieren ?
            Nach dem Datum oder nach der Reihenfolge der Eingabe ?
            Zuletzt geändert von Cosmo2000; 09.10.2002, 11:30.

            Kommentar


            • #7
              Also der 13.6. liegt nunmal vor dem 9.10.
              Mal noch ne Frage, warum machst Du aus dem Datum einen Timewstamp um dann per php wieder ein Datum zu machen?
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                Zum Sortieren. der 12 liegt vor dem 13 weil er aktueller ist. es steht aber der 13 oben. Es soll so passieren, das das Script immer das dem aktuellen datum am nächsten kommende oder eben das aktuelle datum oben erscheint, und dannach in absteigender reihenfolge noch die konzert die kommen werden. also wenn ein konzert vom 12 vorbei ist, soll die 13 hoch rutschen. im mom sortiert das script nach dem monat und dann schreibt es je nachdem ob das datum größer ist oder kleiner es vor oder hinter. ich wollte aber eben es so wie oben beschrieben. aber habe hier gerade nen php freak gefragt der meinte das sowas was ich will noch viel schwerer ist. was meint ihr?
                ##
                Soll ich das Script nochmal hochladen?

                Kommentar


                • #9
                  dann berechne in der SQL Abfrage den Abstand zum heutigen Datum, und sortiere danach

                  [Trickkiste auf]
                  SELECT *, ABS( UNIX_TIMESTAMP( datum ) - UNIX_TIMESTAMP( NOW() ) ) as x from ... ORDER BY x ASC
                  [/Trickkiste zu]

                  PS: ist aber nicht gerade Performanceträchtig, wenn die Tabelle voller wird
                  TBT

                  Die zwei wichtigsten Regeln für eine berufliche Karriere:
                  1. Verrate niemals alles was du weißt!


                  PHP 2 AllPatrizier II Browsergame

                  Kommentar


                  • #10
                    Re: warum sortiert er nicht?

                    PHP-Code:
                    <?php
                    $result 
                    mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as termin FROM almuth WHERE datum >=time() ORDER BY datum DESC");
                    Es kann aber auc NOW() statt time() sein
                    Zuletzt geändert von Wotan; 09.10.2002, 14:39.
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #11
                      Wegen der Performance, Du meinst das der dann immer lange rechnen muss?

                      Kommentar


                      • #12
                        Es reicht aber aus wenns statt:
                        PHP-Code:
                        $result mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as termin FROM almuth ORDER BY datum DESC"); 
                        PHP-Code:
                        $result mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as termin FROM almuth ORDER BY datum ASC"); 
                        nimmst.

                        Dann lautet die reihenfolge der Ausgabe dann so aus:

                        12.06.2002
                        13.06.2002
                        09.10.2002
                        10.10.2002
                        12.10.2002
                        13.10.2002
                        mfg Flashfactor

                        Gebildet ist, wer weiß, wo er findet, was er nicht weiß.

                        Kommentar


                        • #13
                          @flashfactor:

                          Er will aber den Termin der deem heutigen Tage am dichtesten
                          ist, ganz oben haben.

                          @friedemann:

                          Er muß für jede Zeile in der Tabelle die Berechnung ausführen,
                          muß man testen inwieweit das vertretbar ist
                          TBT

                          Die zwei wichtigsten Regeln für eine berufliche Karriere:
                          1. Verrate niemals alles was du weißt!


                          PHP 2 AllPatrizier II Browsergame

                          Kommentar


                          • #14
                            Únd die alten Termine will er garnicht sehen oder?

                            wenn ja

                            PHP-Code:
                            $count mysql_query("SELECT COUNT(*) AS COUNT, UNIX_TIMESTAMP(datum) as termin FROM almuth");
                            if(
                            $result)
                            {
                              
                            $count mysql_fetch_array($result);
                            }
                            $result mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as termin FROM almuth ORDER BY datum ASC LIMIT ".$count['COUNT']."); 
                            Bin mir net sicher ob es ganz richtig ist aber so sollte es funktionieren.
                            Zuletzt geändert von Flashfactor; 09.10.2002, 16:37.
                            mfg Flashfactor

                            Gebildet ist, wer weiß, wo er findet, was er nicht weiß.

                            Kommentar


                            • #15
                              ich hab mir den ganzen thread durchgelesen und nicht verstanden worums geht sollen die einträge nach datum aufgelistet werden, aber die vergangen nicht mehr ? sollen die einträge die an nächsten zu heute sortiert werden, aber die vergangegen nicht mehr ( prinzig das gleiche) ?oder was jetzt ?
                              meine Projekte bestaunen: http://www.kleiza.de

                              Kommentar

                              Lädt...
                              X