mySQL: SELECT arbeitet nicht korrekt

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

  • mySQL: SELECT arbeitet nicht korrekt

    Hallo ich habe hier einen SELECT der das folgende tun soll und aber nicht macht.

    Er soll alle News ausgeben die den page_typ=news haben und news_active=1 sind und es sollen nur die News angezeigt werden die news_end = '0000-00-00 00:00:00' oder news_end größer als das aktuelle Datum sind.

    PHP-Code:
    $q_news=mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM $tbl_news WHERE(news_active='1')
    AND page_typ='news' AND news_end = '0000-00-00 00:00:00' OR DATE(news_end) > CURDATE()
    ORDER BY news_start DESC LIMIT 
    $anz$daten_per_site"); 
    Es werden nun bei mir aber auch News angezeigt bei denen news_active = 0 ist aber news_end größer dem aktuellen Datum ist und das bekomme ich irgendwie nicht hin das die nicht angezeigt werden.

    Kann mir jemand einen Tip geben was ich umstellen muss damit er das macht was ich möchte, Danke im Vorraus
    Zuletzt geändert von KRONOX; 09.07.2009, 08:02.

  • #2
    Zitat von KRONOX Beitrag anzeigen
    Code:
    $q_news=mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM $tbl_news WHERE[COLOR="Red"](news_active='1')
    AND page_typ='news' AND news_end = '0000-00-00 00:00:00'[/COLOR] OR [COLOR="Blue"]DATE(news_end) > CURDATE()[/COLOR]
    ORDER BY news_start DESC LIMIT $anz, $daten_per_site");
    Weil entweder die Blaue oder die Rote Bedingung zutreffen soll. Das, was du zusammengehörend auswerten willst, musst du in Klammern fassen.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Danke @unset hab es jetzt so hinbekommen musste aber das news_active='1' AND page_typ='news' in jedem Teil mit einbauen kann ich mir das noch irgendwie sparen?

      Code:
      ...WHERE
      [COLOR="Blue"](news_active='1' AND page_typ='news' AND news_end = '0000-00-00 00:00:00')[/COLOR]
      OR
      [COLOR="Red"](news_active='1' AND page_typ='news' AND DATE(news_end) > CURDATE())[/COLOR]
      ORDER BY...

      Kommentar


      • #4
        Code:
        ...WHERE (news_active='1' AND page_typ='news' AND ([COLOR="Blue"]news_end = '0000-00-00 00:00:00'[/COLOR] OR [COLOR="Red"]DATE(news_end) > CURDATE()[/COLOR]) ORDER BY...
        Es wäre übrigens sinnvoller für die Spalte news_end einen NULL-Wert zuzulassen und diesen anstelle des 0000-Datums zu verwenden.

        Kommentar

        Lädt...
        X