Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从MySQL数据库获取值并填充下拉框_Php_Mysql_Arrays_Fetch_Dropdown - Fatal编程技术网

Php 从MySQL数据库获取值并填充下拉框

Php 从MySQL数据库获取值并填充下拉框,php,mysql,arrays,fetch,dropdown,Php,Mysql,Arrays,Fetch,Dropdown,我希望有人能帮我解决这个问题,因为我是PHP和MySQL新手。但基本上,我要做的是从数据库中提取数据并填充下拉框和文本框,这样我就可以更新文本框中的值 这是表结构: id | hf_name | hf_price ------------------------ AI | test 1 | 123 AI | test 2 | 123 假设我想更新“测试1”价格,我会在下拉选择中选择“测试1”,并更新教科书中的价格 这是我的代码: <form class='data_form' act

我希望有人能帮我解决这个问题,因为我是PHP和MySQL新手。但基本上,我要做的是从数据库中提取数据并填充下拉框和文本框,这样我就可以更新文本框中的值

这是表结构:

id | hf_name | hf_price
------------------------
AI | test 1  | 123
AI | test 2  | 123
假设我想更新“测试1”价格,我会在下拉选择中选择“测试1”,并更新教科书中的价格

这是我的代码:

<form class='data_form' action='data/food_update.inc.php' method='post'>
    <select>
        <?php while ($row = mysqli_fetch_array($result)):; ?>
            <option><?php echo $row[1];?></option>
        <?php endwhile;?>
    </select>
    <input type='number' name='hf_price' placeholder='$'>
    <button type='submit'>UPDATE</button>
</form>

更新
包括:

<?php

    //CONNECTION TO MySQL   
    include '../dbh.php';

    //VARIABLES
    $hf_name = $_POST['hf_name'];
    $hf_price = $_POST['hf_price'];
    $by_user = $_SESSION['Fname'];
    $up_date = date('Y-m-d'); 

        $sql = "SELECT hf_name FROM hotfoods";
        $result = mysql_query($conn, $sql);

?>


谢谢

尝试将选项更改为

<option value="<?php echo $row[2];?>"><?php echo $row[1];?></option>

但为此,您需要将id数据类型更改为int

 $query = "select * from tablename";
   $result = mysqli_query();

     <select id="nameID" name="hf_name">
          <?php 
            while($row = mysqli_fetch_assoc($result){
              ?>
          <option value='<?php echo $row['id']; ?>'><?php echo $row['hf_name']; ?></option>
    <?php
     }
      ?>
   </select>
试试这个,它可能会起作用。

$query=“select*fromtablename”;
     $query = "select * from tablename";
       $result = mysqli_query($query);

         <select>
              <?php 
                while($row = mysqli_fetch_assoc($result){
                  ?>
              <option value='<?php echo $row['hf_name']; ?>'><?php echo $row['hf_name']; ?></option>
        <?php
         }
          ?>
       </select>
$result=mysqli\u查询($query);
您应该在select元素上分配一个name属性值(在本例中为hf_name),以便在
$\u POST
数组中可用

<form class='data_form' action='data/food_update.inc.php' method='post'>
    <select name="hf_name">
        <?php while ($row = mysqli_fetch_array($result)):; ?>
            <option value="<?php echo $row['hf_name']?>"><?php echo $row['hf_name'];?></option>
        <?php endwhile;?>
    </select>
    <input type='number' name='hf_price' placeholder='$'>
    <button type='submit'>UPDATE</button>
</form>

停止使用不推荐的
mysql.*
API。使用
mysqli.*
PDO
include
中使用
mysql\u query()
,在实际代码中使用
mysqli\u fetch\u array()
。我很确定它们不能一起使用,也许你有一个输入错误,意思是没有I。但正如Jens所说,你应该停止使用mysql函数,转而使用PDO或mysqli。同时尝试使用
PHP数组,从0开始,你试图从索引1中得到结果,我认为这在你的SQL查询中是不存在的。我不知道包含单词“want”的ansa问题。是的,谢谢你指出这一点。这是一个输入错误,但即使我使用mysqli,它仍然会给我一个空的下拉框。在我正在处理的网页中,我希望有一个由食物名称填充的下拉框(hf_名称)和一个由价格填充的文本框(hf_价格),具体取决于所选食物的名称。假设我想更新一种特定食物的价格,我会从下拉框中选择食物的名称,然后从文本框中更改价格。希望这是清楚的?谢谢。在数据库栏中更新?是的。更新数据库列中的价格(hf_price)。我已经更新了答案检查并尝试了一下。但必须根据您的要求进行更改。我尝试了这个,但下拉列表仍然为空。我不确定我到底错过了什么。第一列是id,第二列是hf_名称,第三列是hf_价格。下拉列表仍然为空是什么意思?检查代码是否出现在
while($row=mysqli_fetch\u assoc($result){
循环中。
<form class='data_form' action='data/food_update.inc.php' method='post'>
    <select name="hf_name">
        <?php while ($row = mysqli_fetch_array($result)):; ?>
            <option value="<?php echo $row['hf_name']?>"><?php echo $row['hf_name'];?></option>
        <?php endwhile;?>
    </select>
    <input type='number' name='hf_price' placeholder='$'>
    <button type='submit'>UPDATE</button>
</form>
<?php

    //CONNECTION TO MySQL   
    include '../dbh.php';

    //VARIABLES
    $hf_name = $_POST['hf_name'];
    $hf_price = $_POST['hf_price'];

    $query = sprintf("UPDATE hotfoods SET hf_price='%d' WHERE hf_name='%s'",
        mysql_real_escape_string($hf_price),
        mysql_real_escape_string($hf_name));

    $result = mysql_query($conn, $query);
    if ($result) {
        echo 'Price updated!';
    } else {
        echo 'Problem while updating price';
    }

?>