1

データベースからのデータを選択リストに入力するために、いくつかの PHP/SQL を作成しました。オプションは、テキスト ボックスの前の数値入力に基づいて入力されます。現時点では試してみましたが、適切に実行する方法が本当にわかりません。現在、このコードは機能しません (オプションが表示されません)。アドバイスは素晴らしいでしょう。これが私のコードです:

<?php

$conn = mysqli_connect("localhost", "*****", "*****");
mysqli_select_db(twa312, $conn)
or die ('Database not found ' . mysqli_error() );

$options = '<option value="0"></option>';
$postcode = $_POST["post"];

if (isset($postcode) && !empty($postcode)) {
$sql = "SELECT school_info.Name AS Name, valid_postcodes.postcode AS postcode FROM  school_info INNER JOIN local_schools ON local_schools.schoolID = school_info.schoolID";
$sql .= " JOIN valid_postcodes ON local_schools.postcodeID = valid_postcodes.id ";
$sql .= " where postcode = '$postcode' ";

$rs = mysqli_query($sql, $conn)
or die ('Problem with query' . mysqli_error());

echo "<pre>";
print_r(mysqli_fetch_assoc($rs));
echo "</pre>";
mysql_data_seek($rs, 0);

while ($row=mysqli_fetch_array($rs)) {
$name=$row["Name"];
$options .= '<OPTION VALUE="' . $name . '">' . $name ."</option>";
}

?>

<form name="eoiform" method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="eoi">

<b>Post Code</b>
<br>
<input type="text" id="post" name="post" /><?php echo $msgp; ?>

<b>Student's Current Primary School</b>
<br>
<select name="primary" id="primary"><?php echo $options; ?></select>

</form>

私が本質的にやろうとしているのは、「投稿」フィールドに入力された郵便番号に基づいて、データベースから学校名のリストを選択リスト「プライマリ」に入力することです。つまり、もちろん、同じ学校のデータベースを検索する必要があります入力した郵便番号。学校の名前はテーブル "school_info" の列 "Name" にあり、郵便番号のリストはテーブル "valid_postcodes" の列 "postcode" にあります。これら 2 つのテーブルは、「local_schools」である 3 番目のテーブルの列によって接続されています。すべてを適切に説明できない可能性があるという問題があるため、スクリーンショットを撮り、編集して3つのテーブル間のリンクを表示しました。これにより、リンクに関することが明確になるはずです。

したがって、「valid_postcodes」(郵便番号がある場所) の「id」列は「localschools」の「postcodeID」列に接続され、「local_schools」の「id」列は「school_info」の「schoolID」列に接続されます。 」は学校の名前の場所です。

私はこれらの言語にまったく慣れていないので、かなりの問題を抱えているので、どんな助けも素晴らしいでしょう。私が何かを十分に明確にしていない場合、またはいくつかの情報を省略している場合は、教えてください.

また、ここに print_r(mysql_fetch_assoc($rs)); の結果があります。

Array
(
[Name] => St Marys Primary School
[postcode] => 2747
)
4

0 に答える 0