Это сводит меня с ума.У меня есть две таблицы, которые содержат данные счета.У меня есть клиент, у которого есть один неоплаченный счет в каждой таблице.Я использую этот код, чтобы объединить данные из двух таблиц и получить две строки счета:
$stmt = $db->prepare ("
SELECT invoice_id, invoice_number, customer_id, paid
FROM
(
SELECT invoice_id, invoice_number, customer_id, paid FROM tbl_invoices
UNION ALL
SELECT invoice_id, invoice_number, customer_id, paid FROM tbl_invoices_el
)
tbl_invoices
WHERE customer_id = $customer_id
AND paid = '0'
GROUP BY invoice_number
");
Код отлично работает в phpMyAdmin, результат - две строки с данными.На странице я использую Bootstrap + DataTables, чтобы показать результат в модальном окне.Странно: как ни стараюсь, первый счет повторяется два раза.Как я уже говорил, код работает в phpMyAdmin нормально, var_dump()
извлеченного результата показывает два массива, как и ожидалось.Что я тут не так делаю? ОБНОВЛЕНИЕ $output .=""
не был пустым.Моя вина.@ Бармар обнаружил проблему.
$stmt->execute();
$all_result = $stmt->fetchAll();
$total_rows = $stmt->rowCount();
if ( $total_rows > 0 )
{
foreach ($all_result as $row )
{
/* $output .=" ........... removed */
echo "
<tr style='font-size:13px;'>
<td width='5%'>
<div class='form-check' style='margin-bottom:0px'>
<label class='form-check-label'>
<input data-attr='" .$row['invoice_number']. "' id='" .$row['invoice_id']. "' class='form-check-input' type='checkbox' value='" .$customer_id. "'>
<span class='form-check-sign'>
<span class='check'></span>
</span>
</label>
</div>
</td>
<td width='15%'>".$row['invoice_number']."</td>
</tr>
";
/* echo $output; ........... removed */
}
}