lundi 17 avril 2017

Changing SQL "Where" clause based on form input

Trying to figure out a simpler method besides this huge section of code to dynamically create this SQL statement

On the form I have checkboxes engine1 - engine6 of which someone could select all or none of (selecting none currently = effectively the same as selecting all which is how I want it)

the below code works and generates the SQL statement correctly just wondering if there is a better way to do it?

First section of code determines what the first checkbox is and the second set of code adds the remaining ones based on check status and includes the needed "OR" to the statement.

 $SQLselect  = "SELECT * FROM enginedataview ";
    if ($_POST["engine1"] == "1"){
        $SQLselect = $SQLselect ."WHERE engine_id = 1";
        $starteng=1;
    }
    elseif ($_POST["engine2"] == "2"){
        $SQLselect = $SQLselect ."WHERE engine_id = 2";
        $starteng=2;
    }   
    elseif ($_POST["engine3"] == "3"){
        $SQLselect = $SQLselect ."WHERE engine_id = 3";
        $starteng=3;

    }   
    elseif ($_POST["engine4"] == "4"){
        $SQLselect = $SQLselect ."WHERE engine_id = 4";
        $starteng=4;

    }
    elseif ($_POST["engine5"] == "5"){
        $SQLselect = $SQLselect ."WHERE engine_id = 5";
        $starteng=5;

    }       
    elseif ($_POST["engine6"] == "6"){
        $SQLselect = $SQLselect ."WHERE engine_id = 6";
        $starteng=6;

    }       
    switch($starteng){
        case "1":       
            if ($_POST["engine2"] =="2"){$SQLselect = $SQLselect .", OR engine_id = 2";}
            if ($_POST["engine3"] =="3"){$SQLselect = $SQLselect .", OR engine_id = 3";}
            if ($_POST["engine4"] =="4"){$SQLselect = $SQLselect .", OR engine_id = 4";}
            if ($_POST["engine5"] =="5"){$SQLselect = $SQLselect .", OR engine_id = 5";}
            if ($_POST["engine6"] =="6"){$SQLselect = $SQLselect .", OR engine_id = 6";}
            break;
        case "2":
            if ($_POST["engine3"] =="3"){$SQLselect = $SQLselect .", OR engine_id = 3";}
            if ($_POST["engine4"] =="4"){$SQLselect = $SQLselect .", OR engine_id = 4";}
            if ($_POST["engine5"] =="5"){$SQLselect = $SQLselect .", OR engine_id = 5";}
            if ($_POST["engine6"] =="6"){$SQLselect = $SQLselect .", OR engine_id = 6";}    
            break;
        case "3":
            if ($_POST["engine4"] =="4"){$SQLselect = $SQLselect .", OR engine_id = 4";}
            if ($_POST["engine5"] =="5"){$SQLselect = $SQLselect .", OR engine_id = 5";}
            if ($_POST["engine6"] =="6"){$SQLselect = $SQLselect .", OR engine_id = 6";}    
            break;
        case "4":
            if ($_POST["engine5"] =="5"){$SQLselect = $SQLselect .", OR engine_id = 5";}
            if ($_POST["engine6"] =="6"){$SQLselect = $SQLselect .", OR engine_id = 6";}
            break;
        Case "5":
            if ($_POST["engine6"] =="6"){$SQLselect = $SQLselect .", OR engine_id = 6";}    
            break;
    }   




Aucun commentaire:

Enregistrer un commentaire