php - 使用 PHP/MYSQL 填充 HTML 下拉列表

标签 php html mysql drop-down-menu

我正在练习使用 HTML/PHP/MySQL,并且正在开发一个小项目。

我想创建一个页面,允许用户向 MySQL 表添加记录。用户将通过 HTML 表单输入值。然后,该数据将被发布到 php 脚本以执行实际的 INSERT INTO。

该数据库是一家商店的数据库,有 2 个表,产品和制造商。添加产品时,我还必须添加制造商的代码。我想填充一个下拉列表,显示制造商的名称(取自制造商表)。

我正在尝试将此 PHP 代码嵌入到 HTML 文件中。这是代码:

                <form action="" method="post">
                <fieldset>
                    <legend>Enter Product Details:</legend>
                    Product Name:<input type="text" name="productName"><br>
                    Product Price:<input type="text" name="Price"><br>
                    <?php
                        $host="localhost";
                        $user="root";
                        $pass="";
                        $db="computer_shop";
                        $conn=mysqli_connect($host,$user,$pass,$db) or die ("Couldn't connect");
                        $sql="SELECT * FROM manufacturer";
                        $result=mysqli_query($conn,$sql) or die ("Could not execute query!");
                        if(!$result){
                            echo"Error with results";
                        }
                        if (mysqli_num_rows($result) > 0) {         
                            while($row = mysqli_fetch_assoc($result)) {
                                $code=$row["Code"];
                                $name=$row["Name"];
                                echo"<select name='select'>";

                                    echo"<option value=" .$code.">".$name."</option>"  ;
                                <echo"</select>";
                            }
                            echo "<br>";

                        } else {
                            echo "0 results";   
                        }
                        mysqli_close($conn);

                    ?>
                    <input type="submit" value="Submit">
                </fieldset>
            </form>

当我尝试这样做时,进展并不顺利。当我加载页面时,表单的初始部分(名称和价格的输入框都很好),但下拉列表很乱,我看到代码:“0){ while($ row = mysqli_fetch_assoc( $result)) { $code=$row["Code"]; $name=$row["Name"]; echo"以及仅显示 $name 的下拉列表,然后是提交按钮。所以 HTML 文件显示的是实际 PHP 代码的一部分。

我的问题是,如何解决这个问题,以便下拉列表将显示 mysql 数据库中的值?我一直在浏览各种网站,尝试不同的事情,但我不断遇到类似的问题。我应该翻转一些东西,并将 HTML 嵌入到 PHP 文件中吗?

最佳答案

一般来说,这段代码不是一个好的做法。确保此代码位于 .php 文件中,并且您的 Web 服务器支持 php。

除此之外,我认为以下脚本可以解决您的问题。

if (mysqli_num_rows($result) > 0) {
   //open the select tag before the loop
   echo"<select name='select'>";
   //populate the select
   while($row = mysqli_fetch_assoc($result)) {
      $code=$row["Code"];
      $name=$row["Name"];

      echo"<option value=" .$code.">".$name."</option>"  ;
   }
   //close the select tag after the loop
   echo"</select>";
   echo "<br>";
} else {
   echo "0 results";   
}

关于php - 使用 PHP/MYSQL 填充 HTML 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46511862/

相关文章:

php - 跟踪多个月的播放次数

php - 在 CSS 中插入斜线

javascript - Span 的 "ScrollWidth"属性在 Chrome 上不起作用吗?

html - 自定义选择成一个简单的图标

javascript - 使用文本框动态过滤表格

mysql - 条件写在 Where 子句上好还是 ON 子句好?

php - 如果数据库连接失败,我如何告诉 PHP 暂停一秒钟并重试?

php - session 、位置命令在 000webhost 中不起作用

MySQL - 将 ANSI 转换为 Unicode

php - 加载数据本地内嵌文件