データベースをループして結果を取得することに少し問題があります。問題が発生する理由は理解できますが、PHP が最適ではないため、ソリューションを実装する方法がよくわかりません。フォーラムを調べましたが、問題に対処するものは見つかりませんでした。
以下から、6 つの結果がそれぞれ 2 アイテムだけ必要な場合、出力から 12 の結果が得られます。for each ループは配列内の 12 アイテムをカウントしているため、12 回出力されてそれぞれの複製が得られます。この問題をどのように処理するのが最善ですか。
MyTable1: myTable2:
| ID | Name | | NameID | Details |
|--------|--------| |----------|-------------------|
| 0 | bob | | 0 | lives in the city |
| 1 | david | | 1 | lives in a caravan|
------------------- --------------------------------
私のMSQLIクエリ:
$qryRandom = "SELECT MyTable1.ID, MyTable2.Details
FROM MyTable1
INNER JOIN MyTable2
ON MyTable1.ID=MyTable2.NameID
ORDER BY RAND()
LIMIT 6;";
私のPHP(一般的な例)。
$resultR= $con->query($qryRandom) or die($mysqli->error.__LINE__);
while($row = mysqli_fetch_array($resultR, MYSQL_ASSOC))
{
foreach ( $row as $key=>$value ){ // loops 12 times here as there is 6 items x 2 values
echo $key.": ".$value."<br>";
}
}
結果出力:
bob lives in city
bob lives in city
David lives in caravan
David lives in caravan
john lives in the car
john lives in the car // doubles of each entry is my issue
// hope I was thorough and provided enough info for my scenario.