2016-03-25 9 views
1

Ich versuche, den Wert der Variablen zuzuweisen, wenn die Bedingungen erfüllt. Allerdings ist PHP immer noch nicht den Wert festlegen. Was mache ich falsch?Bedingung ist kein Wert zuweisen der Variablen

hier ist mein PHP-Code:

if(isset($_POST['submit'])) { 
    if (isset($_POST['unit'])) { 
    $unit = $_POST['unit']; 
    $query = search_by_unit($table, $unit); 
    } 
} else if(!isset($_POST['submit'])){ 
    $query = select_all($table); 
} 
$result = mysqli_query($connection, $query); 

wenn ich die Form nach dem Abbinden Einheitssteuer einreichen, es läuft immer noch alle Funktionen auswählen.

hier sind die Funktionen:

function select_all($table_name){ 
     return "SELECT * FROM {$table_name}"; 
} 

function search_by_unit($table_name,$unit){ 
     return "SELECT * FROM {$table_name} WHERE unit = '{$unit}'"; 
} 
+0

Sie jemals nicht auf die Schaltfläche Wert einreichen überprüfen, direkt mit Formularwerten überprüfen. –

+0

hat es funktioniert. Vielen Dank –

+0

Sie haben es funktioniert, aber die meiste Zeit Problem mit dem Testen reichen stammt nicht von Name Attribut für Submit-Taste. In der Tat gibt es keine Eingabe für das Senden in dem Formular. –

Antwort

1

Es ist überhaupt keine gute Methode, den Sendeschaltwert zu überprüfen. Sie haben direkt den form Posted Wert zu überprüfen, so dass der Code sollte wie unten sein: -

if (isset($_POST['unit'])){ 
    $unit = $_POST['unit']; 
    $query = search_by_unit($table, $unit); 
}else{ 
    $query = select_all($table); 
} 
0

Es scheint Ihnen, mehr Prüfungen tun, als Sie wirklich brauchen oder möchten. Ich würde diesen Code auf diese reduzieren:

if (isset($_POST['unit'])) { 
    $unit = $_POST['unit']; 
    $query = search_by_unit($table, $unit); 
} 
else { 
    $query = select_all($table); 
} 

diese Weise, wenn $_POST['submit'] gesetzt ist, aber $_POST['unit'] ist nicht, Sie würden immer noch einen Wert für $query haben.

Verwandte Themen