【问题标题】:Show multiple values from a row when dropdown box is used from mysql database从mysql数据库中使用下拉框时显示一行中的多个值
【发布时间】:2014-11-11 16:51:14
【问题描述】:

选择下拉列表中的项目时,我正在尝试在行中显示特定项目。 To clarify, lets say I have item1 chosen in the dropdown menu, and when item1 is chosen, I want price for item1 shown in another field on the page.

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>

【问题讨论】:

    标签: php jquery mysql


    【解决方案1】:

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

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

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

    然后在上面的代码中,将@字符处的值拆分出来,然后挑出后面的值,就可以得到第二个值了。从长远来看,这应该可以为您节省数据库操作。

    祝你好运!

    【讨论】:

    • 我没有关注,我添加了你说的内容并设置了 $name = $result.但我收到如下错误“解析错误:语法错误,意外'$name'(T_VARIABLE),期望','或';'在 C:\wamp\www\connect.php 第 53 行"
    • 另外,当我切换到 msqli 时,它不会连接到我的数据库。
    • 你在使用 $con = mysqli_connect($host,$user,$pass,$database); ?此外,您在某处缺少分号是解析器说它期待一个。检查上面的行。而且您需要在应用 MySQL 结果之前获取数组。
    猜你喜欢
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 2015-09-13
    • 2020-05-24
    • 2017-09-26
    • 1970-01-01
    相关资源
    最近更新 更多