PHP从数据库中删除所有记录+选择当前设置的记录


PHP Dropdown of all records from database + select current set record

我有一个组名列表的PHP下拉列表(加上id,这样它就可以更新了)。在这个FORM页面中,您可以通过从数据库的下拉列表中选择可能性来更改为项目指定的组名。我下面的代码是有效的,但肯定有更好的方法,因为我得到了当前设置的第一个字段,然后得到了所有的可能性,所以我得到了两次这个记录。

示例:
-键盘(当前设置)
-扬声器(可直接从DBS中选择)
-Midi控制器(可直接从DBS中选择)
-键盘(可直接从DBS中选择)
-滚筒组(可直接从DBS中选择)

正如你所看到的,我再次获得了目前创下的纪录。

我的代码:

echo "<select name='itemgroupid'>";
// CHOOSE CURRENT SET RECORD AS SELECTED ITEM
echo "<option value='" . $itemgroupid . "'>";
$selected="
SELECT item.itemid, itemgroup.itemgroupname, itemgroup.itemgroupid 
FROM item, itemgroup 
WHERE item.itemid=$itemid";
$selectedresult=mysql_query($query) or die("query fout " . mysql_error() );
while($record=mysql_fetch_array($selectedresult) ) {
echo "" . $itemgroupname . "</option>";
}
// QUERY TO SHOW ALL POSSIBLE CHOOSABLE RECORDS FROM DATABASE
$itemgroupquery="SELECT itemgroupname,itemgroupid FROM itemgroup";
$itemgroupqueryresult = mysql_query ($itemgroupquery);
while($nt=mysql_fetch_array($itemgroupqueryresult)){
    echo "<option value=$nt[itemgroupid]>$nt[itemgroupname]</option>";
}
echo "</select>";

有两种方法可以实现您想要的目标:

1) 在下拉顶部显示所选项目

echo "<select name='itemgroupid'>";
// CHOOSE CURRENT SET RECORD AS SELECTED ITEM
echo "<option value='" . $itemgroupid . "'>";
$selected="
SELECT item.itemid, itemgroup.itemgroupname, itemgroup.itemgroupid 
FROM item, itemgroup 
WHERE item.itemid=$itemid";
$selectedresult=mysql_query($query) or die("query fout " . mysql_error() );
while($record=mysql_fetch_array($selectedresult) ) {
echo "" . $itemgroupname . "</option>";
}
// QUERY TO SHOW ALL POSSIBLE CHOOSABLE RECORDS FROM DATABASE
$itemgroupquery="SELECT itemgroupname,itemgroupid FROM itemgroup WHERE item.itemid != $itemid";
$itemgroupqueryresult = mysql_query ($itemgroupquery);
while($nt=mysql_fetch_array($itemgroupqueryresult)){
    echo "<option value=$nt[itemgroupid]>$nt[itemgroupname]</option>";
}
echo "</select>";

2) 在其自然位置显示所选项目

echo "<select name='itemgroupid'>";
// QUERY TO SHOW ALL POSSIBLE CHOOSABLE RECORDS FROM DATABASE
$itemgroupquery="SELECT itemgroupname,itemgroupid FROM itemgroup";
$itemgroupqueryresult = mysql_query ($itemgroupquery);
while($nt=mysql_fetch_array($itemgroupqueryresult)){
    echo "<option value=$nt[itemgroupid]";
    if( $itemid == $nt['itemgroupid'] ) echo ' selected="selected"';
    echo ">$nt[itemgroupname]</option>";
}
echo "</select>";

HTH

OK

在您的代码中。与其在顶部输出您选择的值,不如用正确的方式:)

选择您当前的项目(例如,记下项目组ID)

然后在你的输出

while($nt=mysql_fetch_array($itemgroupqueryresult)){ 
    echo "<option ";
    if ($savedid==$nt[itemgroupid]) echo "selected ";
    echo "$nt[itemgroupid]>$nt[itemgroupname]</option>"; 
} 
echo "</select>"; 

这将产生$savedid=1

<option value=0>group 0</option>
<option selected value=1>group 1</option>
<option value=2>group 2</option>

像一样,先将默认选择的记录添加到空数组中

toDisplay = array('selected_record');

然后,使用sql从数据库中获取数据,并将其附加到此数组中。

稍后在上面运行array_unique,最后使用循环创建html输出字符串,方法与现在相同。