すべての適切なカテゴリを選択入力に出力するのに少し問題があります。現時点では、子を持つすべてのカテゴリを追加する必要があります。問題は、それが完全に正しいわけではないということです。メイン カテゴリとそれに属するサブカテゴリの最初のカテゴリのみが表示されますが、次のメイン カテゴリ アイテムは表示されません。
例えば:
メインカテゴリー: スネア サブカテゴリー: タマ サブカテゴリー サブカテゴリー: スターフォニック
メインカテゴリー: シンバル サブカテゴリー: パイステ
最初のメイン カテゴリ (スネアなど) とそれにリンクされているすべてのカテゴリのみが表示されます。
また、サブカテゴリを持たないカテゴリとサブカテゴリを持つカテゴリを表示したいと考えています。
$result = mysql_query("SELECT COUNT(nimi) AS kpl FROM samppa_kategoriat");
$row = mysql_fetch_array($result);
$kpl = $row['kpl'];
mysql_free_result($result);
$sql = "SELECT
samppa_kategoriat.nimi AS KatNimi,
samppa_kategoriat.layer AS layerA,
samppa_kategoriat.children AS lapsetA,
samppa_alikategoriat.nimi AS AliNimi,
samppa_alikategoriat.layer AS layerB,
samppa_alikategoriat.parent AS parentA,
samppa_alikategoriat.children AS lapsetB,
samppa_alikategoriatB.nimi AS AliNimiB,
samppa_alikategoriatB.parent AS parentB,
samppa_alikategoriatB.layer AS layerC
FROM
samppa_kategoriat,
samppa_alikategoriat,
samppa_alikategoriatB
WHERE
(samppa_kategoriat.nimi = samppa_alikategoriat.parent
AND samppa_alikategoriat.nimi = samppa_alikategoriatB.parent)";
$res = mysql_query($sql);
$i = 0;
while($n = mysql_fetch_object($res)){
$countA[$i] = mysql_real_escape_string(strip_tags($n->lapsetA));
$countB[$i] = mysql_real_escape_string(strip_tags($n->lapsetB));
$nimiA[$i] = mysql_real_escape_string(strip_tags($n->KatNimi));
$nimiB[$i] = mysql_real_escape_string(strip_tags($n->AliNimi));
$nimiC[$i] = mysql_real_escape_string(strip_tags($n->AliNimiB));
$parentA[$i] = mysql_real_escape_string(strip_tags($n->parentA));
$parentB[$i] = mysql_real_escape_string(strip_tags($n->parentB));
$layerA[$i] = mysql_real_escape_string(strip_tags($n->layerA));
$layerB[$i] = mysql_real_escape_string(strip_tags($n->layerB));
$layerC[$i] = mysql_real_escape_string(strip_tags($n->layerC));
$i++;
}
for($i=1;$i<$kpl;$i++){
echo "<option>$nimiA[$i] = $countA[$i] </option>";
for($i=0;$i<$countA[$i];$i++){
echo "<option>- $nimiB[$i] = $countB[$i]</option>";
}
for($i=0;$i<$countB[$i];$i++){
echo "<option>-- $nimiC[$i]</option>";
}
}
mysql_free_result($res);
mysql_close($conn);
?>