2013-09-26 3 views
0

У меня есть цикл внутри другого цикла, который не работает, это код:mysqli_fetch петля не работает

while($row = mysqli_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['rowId'] . "</td>"; 
    echo "<td>" . $row['startDate'] . "</td>"; 
    echo "<td>" . $row['eventName'] . "</td>"; 
    echo "<td>" . $row['betName'] . "</td>"; 
    $string1 = "SELECT * FROM newCell WHERE rowId ='"; 
    $string2 = $row['rowId']."'"; 
    $result2 = $string1.$string2; 
    echo "<td>" . $result2 . "</td>"; 

    while($row2 = mysqli_fetch_array($result2)) 
    { 
     echo "<td>" . $row2['odds'] . "</td>"; 

     echo "<td>" . $row2['outcomeName'] . "</td>"; 
    } 
    echo "</tr>"; 
    } 

Когда я запрашиваю $ result2 непосредственно в BBDD для первого результата он показывает три результата, но код не входит во второй LOOP. Зачем? Любая ошибка здесь?

+1

Вы не выполняете запрос для второго цикла в любом месте. –

+0

покажите нам ваш оба запроса .. – Kalpit

+0

Вы просите его пропустить через 'string', а не объект' mysqli'? – MackieeE

ответ

0
while($row = mysqli_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['rowId'] . "</td>"; 
    echo "<td>" . $row['startDate'] . "</td>"; 
    echo "<td>" . $row['eventName'] . "</td>"; 
    echo "<td>" . $row['betName'] . "</td>"; 
    $string1 = "SELECT * FROM newCell WHERE rowId ='"; 
    $string2 = $row['rowId']."'"; 
    $result2 = $string1.$string2; 
    echo "<td>" . $result2 . "</td>"; 

    $result2 = mysqli_query($connection, $result2); 

    while($row2 = mysqli_fetch_array($result2)) 
    { 
     echo "<td>" . $row2['odds'] . "</td>"; 

     echo "<td>" . $row2['outcomeName'] . "</td>"; 
    } 
    echo "</tr>"; 
    } 
0

Использование:

$query = "SELECT ...."; 
$result2 = mysqli_query($db, $query); 

while($row2 = mysqli_fetch_array($result2)) 
{ 
     echo "<td>" . $row2['odds'] . "</td>"; 

     echo "<td>" . $row2['outcomeName'] . "</td>"; 
} 
0

Я думаю, что $ result2 должен быть выход mysqli_query не только просто запрос. Говоря в аналогии с MySQL.

Вероятно, вы должны иметь что-то вроде этого

$result2 = mysqli_query($result2); 
0

Try This

<?php 
while($row = mysqli_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['rowId'] . "</td>"; 
    echo "<td>" . $row['startDate'] . "</td>"; 
    echo "<td>" . $row['eventName'] . "</td>"; 
    echo "<td>" . $row['betName'] . "</td>"; 
    $string1 = "SELECT * FROM newCell WHERE rowId ='"; 
    $string2 = $row['rowId']."'"; 
    $result2 = $string1.$string2; 
    echo "<td>" . $result2 . "</td>"; 
    $results = mysqli_query($db,$result2); 
    while($row2 = mysqli_fetch_array($results)) 
    { 
     echo "<td>" . $row2['odds'] . "</td>"; 

     echo "<td>" . $row['outcomeName'] . "</td>"; 
    } 
    echo "</tr>"; 
    } 
    ?> 
0

перед получением данных выполнения запросов MySQL с помощью функции mysqli_query(), а затем запустить mysqli_fetch_array(). Было бы хорошо, если бы вы подсчитали результат как $ count = mysqli_num_rows ($ query) и управляли своим кодом с if ... else.

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