2

選択リストに入力する次のコードがありますが、各オプション ('link_title') には、オプションを optgroup 見出しにグループ化するのではなく、リストのその上に optgroup 見出しがあります。

<?php   
$query = mysql_query("SELECT * from link, link_category WHERE link.link_category_fk = link_category.link_category_pk ORDER BY link_category_fk, link_title ASC");
$current_subcategory = "";
while ($row = mysql_fetch_array($query)){

   if ($row["link_category_name"] != $current_subcategory) { 
       if ($current_subcategory != "") { 
           echo "</optgroup>"; 
       }
       echo '<optgroup label="'.$row['link_category_name'].'">'; 
       $current_subcategory = $row['subcategory'];
   }
   echo '<option value="'.$row['link'].'">'.$row['link_title'].'</option>'."\n";
 }
 echo "</optgroup>"; 
?>
          </select>

ここに画像の説明を入力

4

1 に答える 1

1

この行で:

$current_subcategory = $row['subcategory'];

「サブカテゴリ」は「link_category_name」であるべきではありませんか? 確かに、あなたのデータベーススキーマを見なければ、その質問に確実に答えることはできませんが、問題は、レコード列のサブカテゴリの値が link_category_name の値と一致しないことです (したがって、if 条件が常に true である理由)。

于 2013-02-05T05:50:22.347 に答える