id=9の特定のサブカテゴリに割り当てられているプロファイル名を取得しようとしています。以下のコードを実行すると、必要なプロファイルが得られますが、何らかの理由で、foreachループのORDER BY句では、名前のアルファベット順に並べ替えられません。代わりに、「サブカテゴリ」テーブルの「プロファイル」フィールド内での順序と同じ方法で順序付けられます(プロファイルのIDはコンマで区切られます)。たとえば、subcategories ['profiles']に'、5,1,2'がある場合、プロファイル名は次の順序で表示されます。
- ID=5のプロファイル
- ID=1のプロファイル
- ID=2のプロファイル
explode()関数を使用して、「subcategory」テーブル内の各プロファイルのIDを取得し、そのIDを使用して、foreachループ内のクエリを使用して「profile」テーブルから情報を取得しています。
ここに何か足りないものがありますか?ご協力いただきありがとうございます。
これが私のコードです:
<?php
$subcategories=mysql_query("select * from subcategories where id='9'");
while ($subcategories = mysql_fetch_array($subcategories))
{
$profiles = $subcategories['profiles'];
$profiles = explode(',', $profiles);
foreach ($profiles as $p)
{
$all_places = mysql_query("select * from profile where id='$p' and active='1' order by name asc");
while ($profile = mysql_fetch_array($all_places))
{
echo $profile['name'];
}
}
}
?>