2013-11-02 3 views
0

У меня возникла небольшая проблема с циклом в моей базе данных, получающей результаты, я понимаю, почему я получаю эту проблему, но не слишком уверен в том, как реализовать решение, поскольку мой PHP не самый большой. Я просмотрел форумы, но не смог найти ничего, чтобы решить мою проблему.php mysqli зацикливание слишком много результатов

С моей точки зрения, результаты будут давать мне 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 (Generall пример).

$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

Ваш «общий пример» противоречит подробному описанию. Что делает весь вопрос не реальным –

+0

, указанный вами запрос не может произвести такой вывод. –

ответ

1

Решение, которое я придумал работ, как никогда я до сих пор не счастлива с ним;

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

Im более чем уверен, что есть лучший подход к этой проблеме.

+0

почему голос? – Careen

Смежные вопросы