配列を生成しようとしていますが、その方法がわかりません。
現在、次のようにデータを取得しています。
$query = mysql_query("SELECT * FROM users WHERE userEmail LIKE 'test@test.com'");
$row = mysql_fetch_array($query);
$query1 = mysql_query("SELECT * FROM categories");
while($row1 = mysql_fetch_array($query1)){
$query2 = mysql_query("SELECT * FROM usersettings WHERE userId = ".$row['userId']." AND usersettingCategory".$row1['categoryId']." LIKE 'y'");
$isyes = mysql_num_rows($query2);
if($isyes > 0){
$cat1 = mysql_query("SELECT * FROM shops WHERE shopstateId = 1 AND (categoryId1 = ".$row1['categoryId']." OR categoryId2 = ".$row1['categoryId']." OR categoryId3 = ".$row1['categoryId'].")");
$cat1match = mysql_num_rows($cat1);
if($cat1match > 0){
while($cat1shop = mysql_fetch_array($cat1)){
$cat1msg = mysql_query("SELECT * FROM messages WHERE shopId = ".$cat1shop['shopId']." and messagestateId = 1");
while($cat1msgrow = mysql_fetch_array($cat1msg)){
echo $cat1msgrow['messageContent']." - ".$cat1msgrow['messageCode'];
$cat1img = mysql_query("SELECT shopimagePath FROM shopimages WHERE shopimageId = ".$cat1shop['shopimageId']);
$imgpath = mysql_fetch_array($cat1img);
echo " - ".$imgpath['shopimagePath']."<br/>";
}
}
}
}
}
ただし、ユーザーがプリファレンスで 3 つのショップ カテゴリをすべて選択している場合、重複が発生する可能性があります。全体ではなくメッセージIDを取り出して配列に入れる方法を見つけようとしています。たとえば、次のようになります。
1,3,5,7,1,3,5,2,4,7,8
次に、別のクエリを実行して、ID が配列内にあるすべてのメッセージを取得することができますが、そのような配列を構築する最も建設的な方法と、私が見た while ループからの配列の例がわかりません私が探しているものであること。
私を正しい方向に押し進めることができる人はいますか?