2016-04-01 3 views
-1

Ich habe zwei Tabelle in dbProbleme mit Suchfunktion in PHP

bpi_registration 

und

bpi_schoolInfo 

Die Felder in bpi_registration sind

id,id_school, first_name,last_name,city,state,email 

und die Felder in bpi_schoolInfo sind

id_school,school_name,school_state 

Ich versuche, eine Suchfunktion so zu erstellen, dass, wenn ich den Namen der Schule aus Dropdown auswähle der Name der Schüler mit ihren Informationen von dieser bestimmten Schule auftauchen. Die URL sieht wie folgt aus, wenn ich den Namen der Schule wählen: https://www.example.com/retrieve1.php?Grade=&School=kipp+spark+academy&Team=&Students=

Der Code, den ich geschrieben habe, ist:

if (isset($_GET['School'])) 
{ 

    $sql= "SELECT * FROM bpi_schoolInfo 
    INNER JOIN bpi_registration ON bpi_registration.id_school = bpi_schoolInfo.id_school"; 

    $userQuery = "{$sql} WHERE bpi_schoolInfo.id_school = :school_id"; 
    $user = $db->prepare($userQuery); 
    $user->execute(['school_id' => $_GET['School']]); 
    $selectedUser=$user->fetch(PDO::FETCH_ASSOC); 

    if(isset($selectedUser)) 
    { 
     echo '<tr>'; 
     echo '<td>' . $selectedUser['first_name'] . '</td>'; 
     echo '<td>' . $selectedUser['last_name'] . '</td>'; 
     echo '<td>' . $selectedUser['email'] . '</td>'; 
     echo '<td>' . $selectedUser['address_city'] . '</td>'; 
     echo '<td>' . $selectedUser['address_state'] . '</td>'; 
     echo '<td>' . $selectedUser['address_country'] . '</td>'; 
     echo '</tr>'; 
    } 
} 

jedoch aus irgendeinem Grund, wenn ich auf den Namen der Schule klicken ich bin nicht in der Lage siehe die Liste der Schüler, die in dieser bestimmten Schule sind. Ich nehme an, ich mache etwas falsch mit den Fragen und ich würde mich freuen, wenn mir hier jemand helfen kann.

+0

Ist 'kipp + spark + academy' die ID oder der Name der Schule? Möglicherweise müssen Sie Ihre where-Anweisung in Where bpi_schoolInfo.id_school = ändern: school_id to bpi_schoolInfo.school_name =: school_id. Wenn dies nicht funktioniert, können Sie eine vollständige Tabelle für Ihre beiden Tabellen erstellen. – Dbeazy

+0

@Dbeazy kipp + funken + Akademie ist Name der Schule und ja, dass mein Problem gelöst – jon

+0

gut zu hören :) – Dbeazy

Antwort

0

$_GET['School'] enthält den Namen der Schule, aber Sie vergleichen ihn mit der Schul-ID in Ihrer Abfrage. Es sollte sein:

$userQuery = "{$sql} WHERE bpi_schoolInfo.school_name = :school_id"; 

Oder Sie sollten die URL ändern, um die Schul-ID anstelle des Namens zu senden.

+0

Problem gelöst, danke – jon