php mysqli循环太多结果

时间:2013-11-02 15:03:33

标签: php mysql mysqli

我在循环访问数据库检索结果方面遇到了一些问题,我理解为什么我会遇到问题但不太确定如何实现解决方案,因为我的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. 

1 个答案:

答案 0 :(得分:1)

我提出的解决方案有效,但我仍然不满意它;

   while($row = mysqli_fetch_array($resultR, MYSQL_ASSOC))
   {
    for ($i = 0; $i<1;$i++){
    echo $row['name'].$row['details']."<br>";
    }
    }

我更确定有更好的方法解决这个问题。