Abfrage mit WHERE LIKE

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

  • Abfrage mit WHERE LIKE

    Hallo,

    Ich habe ein kleines Problem. Auf meiner Seite versuche ich ein Newsscript zu basteln, das funktioniert auch schon soweit, allerdings habe ich verschiedene Newskategorien.
    Ich möchte zum Beispiel nur kategorie1, kategorie3 und kategorie5 abfragen.
    Mein Versuch war folgender:
    Code:
    $abfrage = "SELECT * FROM tabelle WHERE kategorie LIKE '%kategorie1%' 
    OR kategorie LIKE '%kategorie3%' 
    OR kategorie LIKE '%kategorie5%' 
    ORDER BY id DESC LIMIT 5";
    $ergebnis = mysql_query($abfrage);
    Aber das funktioniert irgendwie nicht ganz, er gibt alle Kategorien aus, und nicht nur die, die ich will....

    Kann ich das eigentlich so machen oder gibt es eine andere Möglichkeit.

  • #2
    Re: Abfrage mit WHERE LIKE

    Wie legst du denn überhaupt die Zugehörigkeit zu einer Kategorie in der Datenbank ab ...?

    (Spaltentyp, Inhalte, ...)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Also ich versuche deine Frage mal so gut es geht zu beantworten da ich noch blutiger Anfänger in solchen Sachen bin.

      Ich schreibe alle Kategorien in die gleiche Spalte und will halt nur bestimmte Kategorien mit dem WHERE LIKE aus dieser Spalte abfragen. Der Typ dieser Spalte ist varchar.

      Kommentar


      • #4
        Hmm, sind "kategorie1", "3" und "5" Variablen (mit hier vergessenem $) oder feste Werte?

        Kommentar


        • #5
          Das sind feste Werte.

          Kommentar


          • #6
            Original geschrieben von giant7
            Ich schreibe alle Kategorien in die gleiche Spalte und will halt nur bestimmte Kategorien mit dem WHERE LIKE aus dieser Spalte abfragen. Der Typ dieser Spalte ist varchar.
            Siehste, das ist schon mal grober Unfug.

            Informiere dich über das Stichwort Normalisierung.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Warum arbeitest Du mit LIKE statt "="? Können in dem Kategorien-Feld mehrere Werte stehen? Laß mal ein paar Beispieldaten sehen. (Nur ein paar)!

              Siehste, das ist schon mal grober Unfug.
              Informiere dich über das Stichwort Normalisierung.
              Oooch, bei einem kleinen Newsscript... Ich weiß nicht, ob das gleich zum Einstieg sein muß. Auf Dauer natürlich schon.
              Zuletzt geändert von pekka; 19.04.2006, 12:19.

              Kommentar


              • #8
                Hallo!

                Original geschrieben von pekka
                Warum arbeitest Du mit LIKE statt "="? Können in dem Kategorien-Feld mehrere Werte stehen? Laß mal ein paar Beispieldaten sehen. (Nur ein paar)!
                Das frag ich mich auch... wenn du ohnehin feste Werte in der Spalte hast (und immer nur einen), dann heißt doch die simple abfrage:

                PHP-Code:
                $result mysql_query("SELECT * FROM tabelle WHERE kategorie='kategorie3';"); 
                (Jetzt miz Kategorie 3 Beispiels weise... die anderen OR´s und die Ordnung kannst du dann ja trotzdem noch anhängen, also die OR´s halt auch mit = anstatt LIKE.)

                Versuchs einfach mal.

                Gruß
                Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                Kommentar


                • #9
                  Hallo,

                  danke für die Antworten, mit dem "=" funktioniert es, aber ich werde micht trotzdem mal über Normalisierung informieren.

                  Kommentar

                  Lädt...
                  X