我在循环访问数据库检索结果方面遇到了一些问题,我理解为什么我会遇到问题但不太确定如何实现解决方案,因为我的PHP不是最好的。 我查看过论坛但找不到任何解决我问题的方法。
从下面我的输出会给我12个结果,当我只想要6个结果每个2个项目:因为每个循环计算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.
答案 0 :(得分:1)
我提出的解决方案有效,但我仍然不满意它;
while($row = mysqli_fetch_array($resultR, MYSQL_ASSOC))
{
for ($i = 0; $i<1;$i++){
echo $row['name'].$row['details']."<br>";
}
}
我更确定有更好的方法解决这个问题。