将mySQL中的PDO请求输出到下拉选择器列表中

时间:2013-04-15 20:57:03

标签: php mysql forms pdo

我有一个包含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();
}
?>

这是到目前为止的工作代码,如何使用按钮将数组的输出更改为选择器下拉列表?甚至滚动框列表都可以吗?

2 个答案:

答案 0 :(得分:1)

您只是想在下拉框中显示查询结果。 这只是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">';

如果您希望能够提交此表单并获取值,则必须使用带有正确选项的表单标记将其包围。

答案 1 :(得分:0)

您可以按列名访问数组中的元素,例如$row['list_name']

类似的东西:

<select name='x'>

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

</select>