我需要创建一个填充的下拉列表,该列表链接到phpmyadmin中名为"dog"的表。我需要一个用户能够从列表中选择一只狗,然后按搜索,结果就会显示出来。所有信息都存储在phpmyadmin中的表中。到目前为止,我已经做到了:它不起作用——它只是一个空的下拉列表,什么也不做。请帮忙。
<?php
// set up connection parameters
$dbHost = 'hostnamegoeshere';
$databaseName = 'databasenamehere';
$username = 'usernamehere';
$password = 'passwordhere';
// make the database connection
$db = new PDO("mysql:host=$dbHost;dbname=$databaseName;charset=utf8","$username", "$password");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // enable error handling
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); // turn off emulation mode
?>
//Return an error if bad connection
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ')'
.$mysqli->connect_error);
}
//query database for results
$query = $mysqli->query("SELECT * FROM 'dog'");
?>
<h3> Search dogs</h3>
<select>
<?php
$stmt = $mysqli->prepare($query);
$stmt->execute();
$res = $stmt->get_result();
while($dropdown = $res->fetch_array(MYSQLI_ASSOC)) {
echo '<option value="' . $dropdown['dog'] . '"></option>';} ?>
</select>
我将非常感谢
使用此
$res = $stmt->get_result();
$res =$res->fetch_array(MYSQLI_ASSOC)
foreach($res as $a){
echo '<option value="' . $a['dog'] . '">'. $a['dog'] .'</option>';} ?>
}
所在地
$res = $stmt->get_result();
while($dropdown = $res->fetch_array(MYSQLI_ASSOC)) {
echo '<option value="' . $dropdown['dog'] . '"></option>';} ?>
代码中的问题数
1) 换行引号表单名称(
SELECT * FROM 'dog
')引号2) 不要同时使用prepare和query。(
$mysqli->query,$mysqli->prepare
)3) 将文本添加到您的选项(
<option value="value"></option>
)4) 您正在将mysqli与pdo 混合
你的代码将是
创建与mysqli 的连接
$mysqli=mysqli_connect($dbHost,$username,$password,$databaseName);
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ')'
.$mysqli->connect_error);
}
<h3> Search dogs</h3>
<select>
<?php
$stmt = $mysqli->query("SELECT * FROM dog");// wrap off and use only query to run
$stmt->execute();
$res = $stmt->get_result();
while ($dropdown = $res->fetch_array(MYSQLI_ASSOC)) {
echo '<option value="' . $dropdown['dog'] . '">'.$dropdown['dog'].'</option>';// add text to dropdown
}
?>
</select>