当使用mysql数据库中的下拉框时,显示一行中的多个值


Show multiple values from a row when dropdown box is used from mysql database

当下拉列表中的一个项目被选中时,我试图在行中显示一个特定的项目。为了澄清,假设我在下拉菜单中选择了item1,当选择item1时,我希望item1的价格显示在页面的另一个字段中。

ps。我正在尝试制作一个连接到MYSQL数据库的库存和订购表。

提前谢谢。

这是我的PHP代码。

    <?php
    function dropdown( $alcohol, array $options, $selected=null )
    {
        /*** begin the select ***/
        $dropdown = '<select name="'.$alcohol.'" id="'.$alcohol.'">'."'n";
        $selected = $selected;
        /*** loop over the options ***/
        foreach( $options as $key=>$option )
        {
            /*** assign a selected value ***/
            $select = $selected==$key ? ' selected' : null;
            /*** add each option to the dropdown ***/
            $dropdown .= '<option                                       
`value="'.$key.'"'.$select.'>'.$option.'</option>'."'n";
        }
    /*** close the select ***/
    $dropdown .= '</select>'."'n";
    /*** and return the completed dropdown ***/
    return $dropdown;
}
?>
<form>
 <?php
mysql_connect('localhost', 'root', '');
mysql_select_db('');
$sql = "SELECT alcohol FROM alcohol ";
$result = mysql_query($sql);
echo "<select name='alcohol'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['alcohol'] . "'>" . $row['alcohol'] . "</option>";
}
echo "</select>";
?> 
</form>

//下面的新东西//

<form  id="data" class="form_alcohol" role="form" method="post" action="connect.php">
            <INPUT TYPE = "Submit" Name = "Submit" VALUE = "Submit">
            <select size="1" name="alcohol">
                <option value="">--- Select Alcohol ---</option>
                <?php 
                   mysql_connect('localhost', 'root', '');
                    mysql_select_db('');
                    $sql = "SELECT alcohol FROM alcohol";
                    $result1 = mysql_query($sql);
                    while ($row = mysql_fetch_array($result1)) {
                    echo "<option value='" . $row['alcohol'] . "'>" . $row['alcohol'] . "</option>";
                    }
                    $dropdown1 = empty($_POST['alcohol'])? die ("ERROR: Select from dropdown") : mysql_escape_string($_POST['alcohol']);
echo "</select>";
                ?>
<?php 
if(isset($_POST['Submit'])) {
mysql_connect('localhost', 'root', '');
mysql_select_db('');
$sql = "SElECT * FROM alcohol where '$dropdown1' = alcohol";
$result = mysql_query($sql) or die(mysql_error());
?>
<table>
<td> alcohol </td> <td> price </td> <td> amount in stock </td>
<?php
 while ($row = mysql_fetch_array($result)) {
 echo "<tr><td>".$row['alcohol']."</td><td>".$row['price']."</td><td>".$row['quantity_in_stock']."</td>";
}
}
?>
</table>

首先,使用mysqli。Mysql_*已弃用,并将在未来的版本中删除。

既然我们已经解决了这个问题,我会在原始的下拉选择值中添加一个"标记"字符来获得值。选择一个通常不会出现在数据库中的Unicode字符,并在值中呼应它,使其看起来像这样:

<option value="$name@$price">$name</option>

然后在上面的代码中,将@字符处的值拆分,并找出后面的值,以获得第二个值。从长远来看,这将为您节省一个数据库操作。

祝你好运!