-4

PHPで構築したオプショングループがあります。レコードを検索するためにDetailNameではなくDetailIDの値を取得する必要があるまでは、すべて問題ありませんでした。表示するにはDetailNameが必要ですが、DetailIDは必要ありません。これに、DetailIDを追加する必要があります。どうすればいいですか?

<?php
include("config.php");
$sql = "SELECT DetailType AS type, DetailID, GROUP_CONCAT(DISTINCT DetailName
          ORDER BY DetailName ASC   
          SEPARATOR '|') AS DetailName FROM tblDetails GROUP BY DetailType"; 
$result = mysql_query($sql) or die(mysql_error());  

while ($row = mysql_fetch_assoc($result)) { 
    echo "<optgroup label='{$row['type']}'>"; 
    $DetailNames = explode('|', $row['DetailName']); 
    foreach($DetailNames as $DetailName) { 
        echo '<option value='.$DetailID.'>'.$DetailName.'</option>';
    } 
    echo "</optgroup>";
}  
?>

テーブル。tblLocDet LocationID 1,1,2,3 DetailID 1,2,3,4

tblDetails DetailType機能、食事期間、サービス、タイプDetailID 1,2,3,4 DetailNameビュッフェ、暖炉、WiFi、ウォーターフロント

4

1 に答える 1

2

これは動作します......

$sql = "SELECT DISTINCT DetailType AS type, DetailID, DetailName FROM tblDetails
            ORDER BY DetailType, DetailName";
                     $result = mysql_query($sql) or die(mysql_error());
                     $prev='';
                     while ($row = mysql_fetch_assoc($result)) { 
                     if ($prev != $row['type']) {
                         if ($prev) echo "</optgroup>";
                         echo "<optgroup label='{$row['type']}'>";
                         $prev = $row['type'];
                         }
                         echo "<option value='".$row['DetailID']."'>".$row['DetailName']."</option>";                            }
                         echo "</optgroup>";
于 2013-02-10T22:08:31.847 に答える