Как поместить 2 mysqli_fetch_assoc в один цикл while в php? - PullRequest
0 голосов
/ 04 марта 2019

Мне нужно объединить данные из 2 разных запросов (данные поступают из 2 баз данных).Поэтому я поставил 2 mysqli_fetch_assoc с && условием.Но это не сработало.Тем не менее, это работает для отдельных mysqli_fetch_assoc.Как это решить или есть другой путь?Пример кода показан здесь:

<?php
    $dalText = new DALText;
    $resultTextEnglish =  $dalText->getTextEnglish($ParaID);
    $resultTextArabic =  $dalText->getTextArabic($ParaID);

    $data = "";
    while ($resTextEnglish = mysqli_fetch_assoc($resultTextEnglish) && $resTextArabic = mysqli_fetch_assoc($resultTextArabic))
    {
        $data .= '<div class="mdl-cell-a mdl-cell--12-col">';
        $data .= '['.$resTextArabic['ID'].'] ';
        $data .= $resTextArabic['Text'];
        $data .= '</div>';


        $data .= '<div class="mdl-cell-b mdl-cell--12-col">';
        $data .= '['.$resTextEnglish['ID'].'] ';
        $data .= $resTextEnglish['Text'];
        $data .= '</div>
    }
    print($data)
    ?>

1 Ответ

0 голосов
/ 04 марта 2019

Возможно, когда обе таблицы имеют одну и ту же строку.Если две таблицы имеют разное количество строк, то это ложно, но не показывает никакой ошибки.

Вот так у меня нормально работает.

$conn = new mysqli("localhost", "root", "", "stack_over_flow");
if ($conn->connect_errno) {
    echo "Failed to connect to MySQL: " . $conn->connect_error;
}
$res1 = $conn->query("SELECT * FROM abc");
$res2 = $conn->query("SELECT * FROM xyz");

while(($row1 = $res1->fetch_assoc()) && ($row2 = $res2->fetch_assoc())){
    echo '
        <tr>
            <td>'.$row1['a'].'</td>
            <td>'.$row1['b'].'</td>
            <td>'.$row1['c'].'</td>
        </tr>

        <tr>
            <td>'.$row2['val'].'</td>
        </tr>
    ';   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...