基于数据库表的PHP选项值


PHP option value based on database table

我现在的问题是:一旦我从数据库中回显了这个值,那就太好了。但当我提交表单时,我得到了所选选项的空值。

有谁能帮忙吗。我试图在价值代码中使用{},但没有成功。

我想要什么:将所选选项的值设置为数据库中的值,以将其插入另一个表中。

<select class="form-control" name="CenterTO" id="CenterTO">
  <option value="" selected>--select-- </option>
<?php
require("inc/DB.php");
$query = "SELECT centerName FROM jeCenter";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
if ($num_rows > 0) {
while($row = mysql_fetch_array($result)){                                                               
    echo '<option value="'.$row['centerName'].'">'.$row['centerName'].'</option>';
     }

} else {
    echo '<option>No data</option>';
}


mysql_close();
?> 

试试这个

<select class="form-control" name="CenterTO" id="CenterTO">
    <option value="0" selected>--select--</option>
    <?php
        require("inc/DB.php");
        $query = "SELECT centerName FROM jeCenter";
        $result = mysql_query($query);
        $count = count($result);
        if (!empty($count)) {
            while($row = mysql_fetch_array($result))
            {              
                $name = $row['centerName'];                                                
                echo "<option value='$name'> $name </option>";
            }
        } else {
            echo '<option>No data</option>';
        }
        mysql_close();
    ?> 
</select>

您必须"展开"您的选择查询以包含行的ID,然后在选项元素的值参数中使用$row['ID'](或ID列的名称),而不是'centerName',而不是$row['centerName']。如果我正确地理解了你想要什么,这应该就是它。

编辑:并且切换到mysqli_,mysql_已经被弃用。

试着这样写:

echo '<option value="',$row["centerName"],'">',$row["centerName"],'</option>';

警告:

请不要使用mysql_数据库扩展,它们在PHP 5.5.0中被弃用,在PHP 7.0.0中被删除。请改用mysqliPDO扩展。

解决方案

我重新创建了您的问题,并使用mysqli扩展增强了您的代码,它运行良好。看看下面的代码,

<?php
    if(isset($_POST['submit'])){
        // display submitted option
        echo $_POST['CenterTO'];
    }
?>
<html>
<head>
    <title>Page Title</title>
</head>
<body>
    <?php
        $host = "localhost";
        $username = "root";
        $password = "";
        $dbName = "stackoverflow";
        // Open a new connection to the MySQL server
        $connection = new mysqli($host, $username, $password, $dbName);
        // Check connection
        if($connection->connect_errno){
            // error
            die('Connect Error: ' . $connection->connect_error);
        }
        // Execute query
        $result_set = $connection->query("SELECT centerName FROM jeCenter");
    ?>
    <form action="form_page.php" method="POST">
    <select name="CenterTO">
        <option value="" selected>--select-- </option>
    <?php
        // Check if number of rows is greater than zero or not
        if($result_set->num_rows > 0){
            // Loop through each record
            while($row = $result_set->fetch_assoc()){
                ?>
                <option value="<?php echo $row['centerName']; ?>"><?php echo $row['centerName']; ?></option>
                <?php
            }
        }else{
            ?>
            <option value="none">No data</option>
            <?php
        }
    ?>
    </select>
    <input type="submit" name="submit" value="Submit" />
    </form>
</body>
</html>
<?php
    // Close connection
    $connection->close();
?>