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

时间:2017-04-28 09:33:45

标签: 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' 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);

?>

谢谢!

4 个答案:

答案 0 :(得分:0)

尝试将选项更改为

export NODE_PATH='yourdir'/node_modules

我假设<option value="<?php echo $row[2];?>"><?php echo $row[1];?></option> 变量包含$row[2]值。

答案 1 :(得分:0)

但为此您需要将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>

当您获取详细信息但没有更新任何值时,这将没有问题,因为为此您需要使用Ajax或Jquery来更新Select,让我尝试一下。

的Ajax

$("#nameID").onchange(function(){
    var id = $("#id").val();
    $.ajax(
        url: "update.php",
        type: "POST",
        data: {'id'=id},                   
        success: function(){
               alert("ok");                                    
         });
});

试试这可能有用。

答案 2 :(得分:0)

     $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>

答案 3 :(得分:0)

您应该在select元素上指定一个名称属性值(在本例中为hf_name),以便在$_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>

现在将提交表单。您可以通过$_POST数组获取用户提交的数据。

<?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';
    }

?>