从mysql / php引用下拉列表中选择的选项

时间:2014-03-27 16:29:57

标签: php html mysql select option

尝试根据存储在mysql数据库中的引用在下拉列表中选择一个选项。

在生成一个已经在while循环中的表时会发生这种情况。

我已经尝试了以下关注

<option selected='<? if ( $row2xsecid == $row1x[item_sub_sec_id]) { echo "selected"; } ?>' value="<? echo $row1x[item_sub_sec_id]; ?>"><? echo $row1x[item_sub_sec_title]; ?></option>

我似乎无法根据存储在mysql中的引用选择选项。

该摘录

  <div class="input-group">
                    <span class="input-group-addon">Select Group</span>
                    <select id='add_item_groupid' class="form-control">
                    <?
                    $sql1x = 'SELECT * FROM items_sub_section_list ORDER BY item_sub_sec_id ASC';
                    $result1x = mysql_query($sql1x);

                    while ($row1x = mysql_fetch_array($result1x)) {
                    ?>
                            <?
                            $sql2x = 'SELECT * FROM items_groups WHERE item_id=$itemid';
                            $result2x = mysql_query($sql2x);
                            while ($row2x = mysql_fetch_array($result2x)) { $row2xsecid = $row2x[item_sub_sec_id]; }
                            ?>
                        <option selected='<? if ( $row2xsecid == $row1x[item_sub_sec_id]) { echo "selected"; } ?>' value="<? echo $row1x[item_sub_sec_id]; ?>"><? echo $row1x[item_sub_sec_title]; ?></option>

                    <?
                    } 
                    ?> 
                    </select>
    </div>

完整脚本的pastebin - http://pastebin.com/NZrETate

1 个答案:

答案 0 :(得分:0)

我看到你正在取代数组而不是关联数组。 (第27行:mysql_fetch_array而不是:mysql_fetch_assoc)

这样做你必须记住你的字段索引以0开头并且是数字,这意味着它将返回Undefined index:

line40: <td><? echo $row['item_id']; ?></td>

因为您获取了一个数组,这也会返回未定义的索引:$ itemid = $ row [&#39; item_id&#39;]; 由于$ itemid未定义,第49行的查询也将失败:

 $secid = mysql_query(" SELECT * FROM item_groups WHERE item_id='$itemid' ");

我也无法看到item_sub_sec_id在哪里声明? (在PHP中,如果这是一个变量,它必须在前面有一个$:$ item_sub_sec_id)

你能看到PHP给你带来的错误吗? 如果不是,我建议显示所有错误:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

如果您对这些问题进行了排序,我们可以查看问题,如果我们知道数据库结构的样子,我也会更容易为您提供解决方案。