私は異なるドロップダウンフィルタ(Grade、School、Team、Students)で検索を実装しようとしていますが、私のコードで何かがひどく間違っています。ページ「retrieve1.php」を読み込むと、Gradeという1つのボックスしか表示されず、それも空です。助けていただければ幸いです。以下は私のコードです -データの問題を取得しています
<?php
$db = new PDO('mysql:host=localhost;dbname=test',$user, $pass);
?>
account1.php
<?php
require 'account1.php';
echo "<body style='background-color:#DCDCDC'>";
$sql= "SELECT * FROM bpi_registration LEFT JOIN bpi_schoolInfo on
bpi_registration.id_school = bpi_schoolInfo.id_school ";
$query=$db->query($sql);
function grade() {
$result = $db->query('SELECT * FROM bpi_classInfo');
while($row = $result->fetchALL(PDO::FETCH_ASSOC))
{
echo "<option value='" . $row['class_name'] . "'>" . $row['class_name'] . "</option>";
}
}
function school() {
$result = $db->query('SELECT * FROM bpi_schoolInfo');
while($row = $result->fetchALL(PDO::FETCH_ASSOC))
{
echo "<option value='" . $row['school_name'] . "'>" . $row['school_name'] . "</option>";
}
}
function team() {
$result = $db->query('SELECT * FROM bpi_teamProfile');
while($row = $result->fetchALL(PDO::FETCH_ASSOC))
{
echo "<option value='" . $row['team_name'] . "'>" . $row['team_name'] . "</option>";
}
}
function students() {
$result = $db->query('SELECT * FROM bpi_registration');
while($row = $result->fetchALL(PDO::FETCH_ASSOC))
{
echo "<option value='" . $row['id']. "'>" . $row['first_name'].' '.$row['last_name']. "</option>";
}
}
?>
<form action="retrieve1.php" method="GET">
<select name="Grade">
<option value="" selected="selected">Choose Grade</option>
<?php grade() ?>
</select>
<select name="School">
<option value="" selected="selected">Choose School</option>
<?php school() ?>
</select>
<select name="Team">
<option value="" selected="selected">Choose Team</option>
<?php team() ?>
</select>
<select name="Students">
<option value="" selected="selected">Choose Students</option>
<?php students() ?>
</select>
<input type="submit" value="Find" />
</form>
<table width="600" border="2">
<tr>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">City </div></th>
<th width="97"> <div align="center">State </div></th>
<th width="59"> <div align="center">Country </div></th>
<tr>
<?php
if (isset($_GET['Students']))
{
//echo $_GET['Students'];
$userQuery = "{$sql} WHERE bpi_registration.id = :user_id";
$user = $db->prepare($sql);
$user->execute(['user_id' => $_GET['Students']]);
$selectedUser=$user->fetch(PDO::FETCH_ASSOC);
}
?>
<?php
if(isset($selectedUser))
{
echo $selectedUser['email'];
echo $selectedUser['address_city'];
echo $selectedUser['address_state'];
echo $selectedUser['address_country'];
}
?>
私はあなたが報告し、エラーが変数のスコープの問題が原因でエラー
Fatal error: Call to a member function query() on null
in public_html/retrieve1.php on line 24
サイトのマークアップはどのように見えますか?ブラウザ機能を使用して、読み込んだページの「ソース」を表示します。 – arkascha
また、httpサーバのエラーログファイルを常に監視する必要があります。そこでは、PHPスクリプトの何かが間違っているかどうかを正確に知ることができます。 – arkascha
@arkaschaエラーは発生していません。私が見るのは、「retrieve1.php」をロードするときに空の「グレード」ボックスが1つだけあることです –