根据mysql表创建list-form

时间:2018-05-26 17:09:54

标签: php html mysql forms

我'我使用mysql创建了一个数据库,我使用php(当然还有html)来检索/插入数据。

我想知道如何创建表单列表,根据数据库中的表格显示选项将更改*。

例如,让我说我有这张表:

CREATE TABLE COMPANY (
comp_id INT NOT NULL AUTO_INCREMENT,
comp_name varchar(30) NOT NULL,
PRIMARY KEY(comp_id) );

我希望列表中包含所有不同的公司名称,以便用户可以选择他想要的公司。

*公司名称不标准,在公司表中可能发生变化,有一天我可能有comp1和comp2以及下一个comp3,comp4和comp5。

所以我不能有一个固定的代码,我需要页面去"读"表中的值并根据它们创建表单。

希望你理解我的意思:P 提前谢谢!

2 个答案:

答案 0 :(得分:1)

只需从公司表中获取所有记录,然后从该数据中填充select元素。要更改公司名称,只需在表格中进行更改即可。

$mysqli  = new mysqli('127.0.0.1','root','','dbname');
if($mysqli->connect_errno){
echo $mysqli->connect_errno;
} else {
    $sql = 'SELECT * FROM COMPANY';
    $result = $mysqli->query($sql);
    if(!$result){
        echo "Query Failed. ".$mysqli->error;
    } else {
        if($result->num_rows > 0){
        $html = "<select>";

        while($current_row = $result->fetch_assoc()){
            $html .= '<option value="'.$current_row['comp_id'].'">'.$current_row['comp_name'].'</option>';

            }

            $html .= "</select>";   
            $result->free();//free the resultset memory
            echo $html;
        } else {
            echo "No Record Exists";
        }
    }
}

答案 1 :(得分:0)

一些基于mysqli的半伪代码 - 假设连接为$db

这应该让你知道如何实现你想要的目标。

$sql='select * from `company`';
$res=$db->query( $sql );

if( $res ){
    $html=array('<select name="company">');
    while( $rs=$rs->fetch_object() )$html[]="<option value='{$rs->comp_id}'>{$rs->comp_name}";
    $html[]='</select>';
    printf('%s',implode( PHP_EOL, $html ) );
}