我编写了一些 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>
我实际上要做的是根据在“post”字段中输入的邮政编码,用数据库中的学校名称列表填充选择列表“primary”,因此当然意味着它应该在数据库中搜索相同的学校输入的邮政编码。学校名称在表“school_info”中作为“名称”列,邮政编码列表在表“valid_postcodes”中作为“邮政编码”列。这两个表由第三个表中的列连接,即“local_schools”。问题是我可能无法正确解释所有内容,因此我截取了屏幕截图并进行了编辑以显示三个表之间的链接,这有望阐明有关链接的内容:
因此,“valid_postcodes”(邮政编码所在)中的“id”列连接到“local school”中的“postcodeID”列,“local_schools”中的“id”列连接到“school_info”中的“schoolID”列“这是学校名称所在的位置。
谁能帮我解决这个问题,我对这些语言很陌生,所以我遇到了很多麻烦,所以任何帮助都会很棒。如果我说得不够清楚或遗漏了一些信息,请告诉我。
这里也是 print_r(mysql_fetch_assoc($rs)); 的结果。
Array
(
[Name] => St Marys Primary School
[postcode] => 2747
)