从mySQL输出一个PDO请求到一个下拉选择器列表


Outputting a PDO request from mySQL into a dropdown selector list

我有一个有2列的表,我希望在底部有一个按钮的下拉选择器列表中只输出这些列中的一个。我使用PDO连接到数据库,这段代码正在工作,但它只是给我的每一行的所有细节的数组。

<?php
/* Execute a prepared statement by binding PHP variables */
$username = "mydb";
$password = "mydb"; 
$member = $_SESSION['SESS_MEMBER_ID'];
try {
    $dbh = new PDO('mysql:host=;dbname=mydb', $username, $password);
    $sth = $dbh->prepare('SELECT list_name FROM lists WHERE member_id = :member_id ');
    $sth->execute(array('member_id' => $member));
    $result = $sth->fetchAll();
  if ( count($result) ) { 
    foreach($result as $row) {
      print_r($row);
    }   
  } else {
    echo "No rows returned.";
  }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}
?>

这是工作代码到目前为止,我如何改变输出从一个数组到一个选择器下拉列表与按钮?即使是滚动框列表也行吗?

您只是想在下拉框中显示查询结果。这只是依赖于一些变量的html。而不是像这样显示结果:

foreach($result as $row) {
   print_r($row);
}

你应该像这样用PHP显示一个HTML标签:

print '<select id="your_list">';
    foreach ($result as $row) {
    print '<option value="'.$row['list_name'].'">'.$row['list_name'].'</option>';
    }
print '</select>';
print '<input type="submit" value="Submit">';

如果你想能够提交这个表单并获得值,你必须用一个带有正确选项的表单标签包围它

通过列名访问数组中的元素,例如:$row['list_name']

类似:

<select name='x'>
<?php   
    foreach($result as $row) {
        echo "<option value='".$row['list_name']."'>".$row['list_name']."</option>";
    }
?>
</select>