[MySQL 4.0] Abfrage mit LIKE ??? HILFE!

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

  • [MySQL 4.0] Abfrage mit LIKE ??? HILFE!

    Hallo,

    ich habe folgendes Problem:

    Ich habe eine Tabelle(z.B.: benutzer), in welcher alle Benutzer mit ihrem Alter eingetragen sind. z.B.: user->Al alterdb->25
    Desweiteren habe ich eine Ergebnismenge in einer Variable. z.B.: $alter="24,25,26";
    Wie kann ich meine DB abfragen, dass ich alle Benutzer bekomme, die somit 24, 25 und 26 Jahre alt sind? Ich kann die Variable auch nicht in Einzelteile zerlegen, weil es hier zu viele verschiedene Möglichkeiten gäbe und die Abfragen dann zu lange dauern würden. Ich bräuchte das in einer Datenbankabfrage.

    Umgekehrt wüsste ich, wie es geht, wäre dann:
    ...SELECT user FROM benutzer WHERE alterdb like '%$alter%'")
    Dabei wäre allerdings $alter ein Teil von alterdb, ich benötige aber bei diesem Fall genau das Gegenteil. Ich hoffe, dass war einigermassen verständlich...Irgendwie komm ich hier nicht weiter. Brauche ganz dringend HILFE!!!

    Danke schon mal.
    rantanplan

  • #2
    $alter z.B. mittels explode in ein Array überführen. Dann eine Abfrage an die DB à la (mit oder Operator)
    PHP-Code:
    $alter explode(',',$alter);
    $query "Select * from table where alter='$alter[0]' || alter='$alter[1]';"
    Weiteres dazu unter http://dev.mysql.com/doc/refman/4.1/...operators.html

    Gruss

    tobi

    p.s.
    PHP-Code:
    $query "Select * from table where";
    for(
    i=0;i<count($alter);i+=1){
        if(
    $i == 0){
            
    $query .= " alter='$alter[$i]'";
        }else{
            
    $query .= " || alter='$alter[$i]'";
        }
    }
    $query .= ";"
    Das würde noch helfen falls du nicht weisst wieviele verschiedene Alter du hast
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Macht er dann nicht zu jedem $alter[] eine eigene Abfrage an meine DB? Das wollte ich ja eigentlich vermeiden...

      Kommentar


      • #4
        natürlich nicht. du sendest doch nur eine anfrage an die db. 1 query = 1 anfrage.


        @jah: du wolltest tatsächlich IN() verschweigen?

        Kommentar


        • #5
          Kannte ich nicht *schämundindieEckestell* Ist ja voll perfekt für diesen Zweck
          Und wieder war gelernt

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Was is denn IN() ???

            Kommentar


            • #7
              Hmm, jahlives kannte es auch nicht, hat aber selbstständig gesucht. das wäre mal ein ansatz, oder?

              Kommentar


              • #8
                hmmm, in der Tat, gute Idee, werd mal suchen...danke schon mal!

                Kommentar


                • #9
                  Mann, mann...wo kuckt Ihr denn da??? Finde nix dazu, hmm...wie wäre es, postet doch einfach die syntax und ich probier´s einfach selbst aus...hab wirklich rumgesucht wie ein Irrer.
                  Wie lautet denn die syntax?

                  ...WHERE alterdb IN '$alter'") ???

                  Kommentar


                  • #10
                    ...WHERE alterdb IN ('25', '26', '27')

                    PHP-Code:
                    $alter="('" replace(",""','"$alter) . "')"
                    www.myplaner.de

                    Kommentar


                    • #11
                      Wahnsinn, sehr geil, danke!!! Das war´s! Musste nur statt replace ->str_replace verwenden...und schon hat´s funktioniert!

                      Danke nochmal allen, die mir geholfen haben!!! War gigantisch!!!

                      Kommentar

                      Lädt...
                      X