从 phpmyadmin 创建一个填充的下拉列表

Posted

技术标签:

【中文标题】从 phpmyadmin 创建一个填充的下拉列表【英文标题】:creating a filled drop down list from phpmyadmin 【发布时间】:2016-08-07 09:45:08 【问题描述】:

我需要创建一个填充的下拉列表,该列表链接到我在 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>

如果有任何帮助,我将不胜感激

【问题讨论】:

【参考方案1】:

代码中的问题数

1) 将表名(SELECT * FROM 'dog')引号括起来

2) 不要同时使用准备和查询。($mysqli-&gt;query,$mysqli-&gt;prepare)

3) 将文本添加到您的选项中(&lt;option value="value"&gt;&lt;/option&gt;)

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>

【讨论】:

感谢您的回复,我在下拉页面上收到以下消息: //如果连接不良则返回错误 if ($mysqli->connect_error) die('Connect Error (' . $mysqli->connect_errno .')' .$mysqli->connect_error); //查询数据库结果 $query = $mysqli->query("SELECT * FROM 'dog'"); ?> 这是在使用您的代码之后,谢谢,但它似乎仍然无法正常工作 表示您无法与数据库建立连接!! 啊,你在混合 mysqli 和 pdo 感谢您的帮助!多数民众赞成摆脱了这些错误 :) 实际下拉仍然是空的你有什么建议为什么它不带回我的 phpmyadmin 表中的结果? 只需使用我提供的代码并检查你得到了什么!【参考方案2】:

使用这个

$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>'; ?>

【讨论】:

以上是关于从 phpmyadmin 创建一个填充的下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

如何从动态填充的下拉列表中动态选择一个选项

从相邻下拉列表的单元格中输入数据时,如何删除填充颜色?

将下拉列表从 Python 重新填充到 jQuery 网页

Jinja for 循环不会填充选择下拉列表

如何通过从另一个下拉列表中选择值来填充下拉列表?

根据下拉列表的值创建 2 个下拉列表和一个表