【问题标题】:create list-form according to mysql table根据mysql表创建列表形式
【发布时间】:2018-05-27 01:34:16
【问题描述】:

我已经使用 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 提前致谢!

【问题讨论】:

  • 所以你希望公司名称出现在选项中,然后使用任何 php 循环来显示数据库中的列表。
  • @Mawia HLok,我怎么知道有多少家公司来配置循环?或者我将如何为它们中的每一个设置不同的值?
  • 你的问题我不清楚,因为你没有提供你正在工作的代码。我猜你想要一个带有动态选项的 html 选择框。要从表中获取公司名称,可以使用 for 循环、foreach 循环、while 循环。

标签: php html mysql forms


【解决方案1】:

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

$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";
        }
    }
}

【讨论】:

    【解决方案2】:

    一些大致基于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 ) );
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多