0

グループ名のリストのPHPドロップダウンがあります(IDと一緒に更新できるため)。この FORM ページでは、データベースから出てくるドロップダウンから可能性を選択することにより、アイテムに指定されたグループ名を変更できます。以下のコードは機能しますが、最初のフィールドを現在設定されているものとして取得し、次にすべての可能性を取得するため、このレコードを 2 回取得するため、より良い方法が必要です。

例:
- キーボード (現在設定されている)
- スピーカー (選択可能、DBS から直接)
- MIDI コントローラー (選択可能、DBS から直接)
- キーボード (選択可能、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>";
4

3 に答える 3

4

探しているものを達成する方法は 2 つあります。

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

于 2012-09-12T10:43:25.123 に答える
1

わかった

あなたのコードで。選択した値を上部に出力するのではなく、適切な方法で実行してください:)

現在のアイテムを選択します (たとえば、itemgroupid をメモします)。

次に、出力で

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>
于 2012-09-12T10:44:13.127 に答える
0

最初に次のように、デフォルトで選択されたレコードを空の配列に追加します

toDisplay = array('selected_record');

次に、SQLを使用してデータベースからデータを取得し、この配列に追加します。

後でarray_uniqueそれを実行し、最後にループを使用して、現在行っているのと同じ方法でhtml出力文字列を作成します。

于 2012-09-12T11:17:10.797 に答える