if abfrage bei Ähnliches Daten

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

  • if abfrage bei Ähnliches Daten

    Hallo, hab eine kurze Frage,
    möchte eine if abfrage erstellen. Hier eine einfache Darstellung:

    if ($tier=='hund5')
    {
    echo "Tier: Hund";
    }
    else
    {
    echo "Tier: Kein Hund";
    }

    Jetzt möchte ich aber dass auch bei hund2 oder hund3 der Text "Tier: Hund" kommt.

    Kenne "like" von SQL Abfragen. Gibt es bei IF auch einen Platzhalter, den ich nach "==hund" setzen kann?

    Grüße!
    Ich weiß was RTFM bedeutet und nutze es auch, aber ab und zu muss ich auch mal was posten

  • #2
    Nein, aber du könntest == 'hund'.$variable_mit_zahl machen ...
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Ja, das wäre eine Möglichkeit!
      Danke! Ich werd mal weiter probieren, wie ich es am besten hinbekomme.
      Ich weiß was RTFM bedeutet und nutze es auch, aber ab und zu muss ich auch mal was posten

      Kommentar


      • #4
        evtl. helfen dir reguläre ausdrücke und preg_match() weiter.

        Kommentar


        • #5
          oder was mit strpos - ist gegenüber regulären ausdrücken schneller....
          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

          Kommentar


          • #6
            Was du aber wohl machen kannst, ist den Vergleich auf die ersten x Zeichen beschränken (ist im Ergebnis das gleiche wie LIKE "hund%":

            PHP-Code:
            if (substr($tier,0,4)=="hund")
              {...} 
            liefert exakt dasselbe, was MySQL bei tier LIKE "hund%" liefern würde. Ist die einfachste Lösung.
            Reguläre Ausdrücke gehen auch (aber langsam und mühsamer für den Zweck).

            Nur wenn Du z.B. (SQL) tier LIKE "%hund%" simulieren würdest wollen, bräuchtest Du wirklich eine regexp:

            PHP-Code:
            if (preg_match("/hund/",$tier))
              {...} 

            Kommentar


            • #7
              merit, mit regulären ausdrücken lässt sich auch "der anfang der zeile" festlegen.

              Kommentar


              • #8
                Guten Morgen und vielen Dank für die hilfreichen Tipps! Ich werde es nachher mit diesen Hinweisen versuchen!

                Vielen Dank!
                Grüße!
                Ich weiß was RTFM bedeutet und nutze es auch, aber ab und zu muss ich auch mal was posten

                Kommentar


                • #9
                  @penizillin:

                  merit, mit regulären ausdrücken lässt sich auch "der anfang der zeile" festlegen
                  ich weiß, aber meines Wissens nach ist

                  PHP-Code:
                     preg_match("/^hund/"$tier
                  deutlich langsamer als

                  PHP-Code:
                    (substr($tier,0,4)=="hund"
                  Das ist jedenfalls sicher für die ereg-Funktionen der Fall. Wieviel besser preg_match ist, weiß ich aus eigener Wahrnehmung nicht. Sollet preg_match tatsächlich so schnell sein, dass es besser ist, als die substr-Variante, bitte um Mitteilung. Dann muß ich mal komplett umdenken, was PHP und reguläre Ausdrücke betrifft.

                  Kommentar


                  • #10
                    Dann muß ich mal komplett umdenken [...]
                    nein, musst du nicht, denn du hast sicherlich recht. was die tatsächlichen "geschwindigkeitsunterschiede" ausmachen, sei dem threadstarter überlassen.

                    Kommentar

                    Lädt...
                    X