Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 08-03-2017, 01:20
Guenther
 Registrierter Benutzer
Links : Onlinestatus : Guenther ist offline
Registriert seit: Mar 2017
Beiträge: 4
Guenther befindet sich auf einem aufstrebenden Ast
Standard 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
Mit Zitat antworten