Newbie: If-ElseIf-Else Codeoptimierung

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

  • Newbie: If-ElseIf-Else Codeoptimierung

    Hallo zusammen.

    Ich betrachte hier gerade ein Codesegment und denke mir, dass das doch wesentlich eleganter zu lösen sein müsste, allerdings fehlt mir dazu der Ansatz.

    Ausgangssituation ist ein Script, das als Parameter einen Buchstaben übergeben bekommt. Hieraus wird die WHERE Klausel einer SQL Abfrage zusamengesetzt, die dann später nur die Namen mit dem jeweiligen Anfangsbuchstaben zurück liefern soll.

    Ich finde, der Code ist zwar logisch, aber gruselig und bestimmt alles andere als performant.

    Aber schaue ihn Dir am besten selbst einmal an.

    PHP-Code:
                if (IsSeT($_GET['p_name']) && $_GET['p_name'] == "A") {
                    
    $name_filter "AND (adr_name like 'a%' )";
                } 
                elseif (IsSeT(
    $_GET['p_name']) && $_GET['p_name'] == "B") {
                    
    $name_filter "AND (adr_name like 'b%' )";
                } 
                    elseif (IsSeT(
    $_GET['p_name']) && $_GET['p_name'] == "C") {
                    
    $name_filter "AND (adr_name like 'c%' )";
                } 
    /* ...*/
                
    elseif (IsSeT($_GET['p_name']) && $_GET['p_name'] == "Z") {
                    
    $name_filter "AND (adr_name like 'z%' )";
                } 
                else {
                    
    $name_filter "";
                } 
    Da wird also wirklich von A-Z jeder einzelne Buchstabe geprüft. Das geht sicherlich irgendwie eleganter. Aber wie?

    Danke, dass Du Dir die Zeit zum lesen genommen hast und ich bin sehr gespannt auf den Input, den ich hoffentlich bekomme.

    Lg
    Günther

  • #2
    PHP-Code:
    $var = isset($_GET['p_name']) ? strtolower($_GET['p_name']) : "";

    $name_filter strlen($var) ? "AND (adr_name like '$var%' )" ""

    Kommentar


    • #3
      Es hat auf Anhieb funktioniert. Ganz herzlichen Dank dafür.
      Lg
      Günther

      Kommentar

      Lädt...
      X