将数据库字段显示为复选框

时间:2012-06-18 10:50:42

标签: php

我正在尝试显示所有数据库字段,例如单选按钮。例如,我有这个数据库字段:

hostess_id
hostess_name_en
hostess_surname_en
... etc ...

我想将它们显示为单选按钮,以便选择它们,然后仅显示所选按钮的数据信息。

我该怎么做? 我有这样的事情:

<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
    die('Could not connect to MySQL server: ' . mysql_error());
}
$dbname = 'db_up';
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
    die("Could not set $dbname: " . mysql_error());
}
$res = mysql_query('select * from hostess', $link);

while ($row = mysql_fetch_assoc($result)){

  echo "<td><input type=\'checkbox\' name=\'hostess[]\' value=\'" . $row['hostess_id'] . "\'>" . $row['hostess_firstname_en'] . "<br />";

}


?>

2 个答案:

答案 0 :(得分:0)

使用PDO,它将获得所有字段

$q = $dbh->prepare("DESCRIBE tablename");
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_COLUMN);

不推荐使用mysql_ *

function mysql_field_array( $query ) {
    $field = mysql_num_fields( $query );
    for ( $i = 0; $i < $field; $i++ ) {
        $names[] = mysql_field_name( $query, $i );
    }
    return $names;
}
// Example of use
$fields = mysql_field_array( $query );

您可以遍历该字段名称数组,并在复选框中使用该名称。

答案 1 :(得分:0)

复选框需要一个唯一的name,或者它们需要是一个数组。复选框数组适合您正在执行的操作:

while ($row = mysql_fetch_assoc($result)){

  echo "<input type='checkbox' name='hostess[]' value='" . $row['id'] . "' />" . htmlentities($row['hostess_surname_en']) . "<br />";

}

这将为您提供一个复选框列表,每个复选框旁边都有女主人姓。 现在,当此表单提交到PHP脚本时,您将能够访问所选行id

$selectedIds = $_POST['hostess']; // an array

$selectedIds是已检查记录id的数组。

我建议将PDO或MySQLi用于新代码,因为不推荐使用mysql_*库。