我需要合并来自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)
?>
答案 0 :(得分:1)
两个表具有相同的行是可能的。如果两个表的行数不同,则为false,但不显示任何错误。
像这样对我来说很好。
$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>
';
}