Sortiert falsch :(

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

  • Sortiert falsch :(

    Hey ihr,

    ich habe eine Datenbank mit Veranstaltungen.
    die nächste Veranstaltunegn finden am

    31.03.2002
    01.04.2002
    06.04.2002
    usw statt

    ich habe ein Script was mir einen Datensatz aus der Datenbank holen soll und zwar den Datensatz der dem jetzigen Datum am nächsten ist. Die Abfrage mach ich folgender maßen:
    PHP-Code:
    $db mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw"
    or die (
    mysql_error());
    mysql_select_db("$MySQL_Data");
    $res mysql_query("SELECT *, DATE_FORMAT(datum1_a, '%d.%m.%Y')
    AS datum1_a_f FROM veranstaltung WHERE
    datum1_a >= NOW() LIMIT 1"
    ) or die (mysql_error());

    while (
    $row mysql_fetch_array($res))
    {
    $text substr($row[beschreibung],0,120)."...";
    }
    mysql_close($db); 
    jetzt bekomme ich aber immer den Datenstz von 09.11.2002.
    Was ist hier falsch?
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

  • #2
    hmm,

    du suchst doch den der am nächsten ist, da du kein ORDER BY verwendest ist das der Datensatz der in der internen Darstellung von SQL am nächsten liegt, du musst noch ORDER BY datum1_a machen.

    Kommentar


    • #3
      Re: Brauche DRINGENT Hilfe

      PHP-Code:
      $res mysql_query("SELECT *, DATE_FORMAT(datum1_a, '%d.%m.%Y')
      AS datum1_a_f FROM veranstaltung ORDER BY datum1_a WHERE
      datum1_a >= NOW() LIMIT 1"
      ) or die (mysql_error()); 
      Fehlermeldung :
      Fehler in der Syntax bei 'WHERE datum1_a >= NOW() LIMIT 1' in Zeile 1.
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Kommentar


      • #4
        PHP-Code:
        $res mysql_query("SELECT *, DATE_FORMAT(datum1_a, '%d.%m.%Y')
        AS datum1_a_f FROM veranstaltung WHERE
        datum1_a >= NOW() LIMIT 1,30 ORDER BY datum1_a"
        ) or die (mysql_error()); 
        muss das nich so heisen also das ORDER BY hinter WHERE ??

        ausserdem muss das LIMIT 1,30 heissen (zb) also er fängt bei 1 an und zeigt 30 daten setzt.. ich glaub da lag der fehler.


        mfg Trashar

        Kommentar


        • #5
          PHP-Code:
          $res mysql_query("SELECT *, DATE_FORMAT(datum1_a, '%d.%m.%Y')
          AS datum1_a_f FROM veranstaltung WHERE
          datum1_a >= NOW() LIMIT 1,30 ORDER BY datum1_a"
          ) or die (mysql_error()); 
          Fehlermeldung: Fehler in der Syntax bei 'ORDER BY datum1_a' in Zeile 1.
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #6
            hmm,

            zuerst ORDER BY dann LIMIT !
            PHP-Code:
            $res mysql_query("SELECT *, DATE_FORMAT(datum1_a, '%d.%m.%Y')

            AS datum1_a_f FROM veranstaltung WHERE

            datum1_a >= NOW()  ORDER BY datum1_a LIMIT 1,30"
            ) or die (mysql_error()); 

            Kommentar


            • #7
              PHP-Code:
              $res mysql_query("SELECT *, DATE_FORMAT(datum1_a, '%d.%m.%Y')
              AS datum1_a_f FROM veranstaltung WHERE
              datum1_a >= NOW() ORDER BY datum1_a LIMIT 0,1"
              ) or die (mysql_error()); 
              So ist die Abfrage richtig.
              *winks*
              Gilbert
              ------------------------------------------------
              Hilfe für eine Vielzahl von Problemen!!!
              http://www.1st-rootserver.de/

              Kommentar

              Lädt...
              X