だから私は何か間違ったことをしている(PHPの新機能)。この問題は、phpで配列を操作した経験がないことに関係していると思う。
$query2 = "SELECT * FROM birds where breed = '".$row['breed']."' and wing_span = '".$row['wing_span']."' and id != '".$row['id']."' limit 4";
$s_query = mysql_query($query2);
$theArray = array();
$counter = 0;
while($row3 = mysql_fetch_assoc($s_query)) {
$counter = $counter + 1;
array_push($theArray, $row3);
}
if($counter < 4) {
$new_limit = 4 - $counter;
$query5 = "SELECT * FROM birds where breed = '".$row['breed']."' and id != '".$row['id']."' limit ".$new_limit."";
$s_query2 = mysql_query($query5);
$counter = 0;
while($row5 = mysql_fetch_assoc($s_query2)) {
$counter = $counter + 1;
array_push($theArray, $row5);
}
}
目標は、最初のクエリで最大4に達しない場合、MAXの差を使用して2番目のクエリを実行することです-制限としてカウントします。しかし、そのクエリを実行すると、既存の行($ s_query)に行($ s2_query)を追加しようとします。
この試みでは、新しい配列を作成し、要素をプッシュしていきました。それらも手動で組み合わせてみましたが(array_merge)、うまくいきませんでした。
編集 2つのクエリがあることを意図しています。ポイントは、最初のクエリで合計4つの結果が得られない場合は、2番目のクエリを実行して残りのスポットを埋めることです。