2017-06-24 2 views
2

Set index.phpBindung einen Parameter, der nicht immer

<a href="index.php?type=potato"><div>click here to select only potato</div></a> 
$typesql = $_GET['type']; 
$results = $mysqli->prepare("SELECT name, type FROM artists WHERE type = ?"); 
$results->bind_param("s", $typesql); 
$results->execute(); 
$results->bind_result($name, $type); 

die obige Abfrage standardmäßig alle Arten von Gemüse zeigt, läuft, wenn index.php geladen wird, dann habe ich beschlossen, eine Schaltfläche hinzufügen, die die verändert Ergebnisse, um nur Kartoffeln zu zeigen, jetzt, wenn der Typ nicht in der URL ist, zeigt es nicht mehr alle Gemüse an, da WHERE type =? ist nicht festgelegt, wie wird der Standardtyp auf alle Typen festgelegt?

Antwort

2

müssen Sie überprüfen, ob die GET-Parameter leer ist oder nicht, so versuchen, diese

<a href="index.php?type=potato"><div>click here to select only potato</div></a> 
    $typesql = $_GET['type']; 
    if($typesql){ 
    $results = $mysqli->prepare("SELECT name, type FROM artists WHERE type = ?"); 
    $results->bind_param("s", $typesql); 
    } 
    else { 
    $results = $mysqli->prepare("SELECT name, type FROM artists"); 
    } 

    $results->execute(); 
    $results->bind_result($name, $type); 
+1

Bitte geben Sie keine 'Code-only' Antworten. Erklären Sie dem OP (und möglichen zukünftigen Benutzern), was Sie tun. –

1

Überprüfen Sie, ob der type Parameter eingestellt ist und Ihre Abfrage ändern, dass nach.

Etwas Ähnliches (nicht getestet):

if (!empty($_GET['type'])) { 
    $typesql = $_GET['type']; 
    $results = $mysqli->prepare("SELECT name, type FROM artists WHERE type = ?"); 
    $results->bind_param("s", $typesql); 
} else { 
    $results = $mysqli->prepare("SELECT name, type FROM artists"); 
} 
$results->execute(); 
$results->bind_result($name, $type); 
Verwandte Themen