У меня есть этот SQL
запрос, где я составить список людей, которые заплатили в этом месяце, и кто не сделал:Изменение сложный INNER JOIN запрос и отображение его с PHP
SELECT main.*
FROM (SELECT t1.client_name, t1.total_debts, t2.client_id, sum(payment) payments , t2.date_now ,
CASE MONTH(t2.date_now)
WHEN MONTH(CURDATE()) THEN 'Paid'
ELSE 'Not Paid'
END current_month
FROM client_debts t1 INNER JOIN client_details t2 ON t1.id = t2.client_id
GROUP BY t2.client_id) main
WHERE main.total_debts<> main.payments;
Так что я получил это результат:
Как мы видим на картинке, у меня есть один и тот же клиент, платит за один пункт в этом месяце, но он не платит за другой пункт, так что практически, он пришел к моему магазину и дал мне деньги, поэтому мне нужно удалить его имя из списка как Not Paid
и сохраните строку, где он сказал Paid
.
И как я могу запустить этот запрос в PHP, чтобы я мог поместить его в таблицу для отображения. I tried the answer here in this link
$sql = "SELECT main.*
FROM (SELECT t1.client_name, t1.total_debts, t2.client_id, sum(payment) payments , t2.date_now ,
CASE MONTH(t2.date_now)
WHEN MONTH(CURDATE()) THEN 'Paid'
ELSE 'Not Paid'
END current_month
FROM client_debts t1 INNER JOIN client_details t2 ON t1.id = t2.client_id
GROUP BY t2.client_id) main
WHERE main.total_debts<> main.payments;";
$stmt = $conn->prepare($sql);
$exec = $stmt->execute();
$res = $stmt->fetchAll();
Тогда HTML:
<div class="col-lg-6">
<table>
<?php foreach($res as $row){ ?>
<tr>
<td><?php echo $row['t1.client_name']; ?></td>
</tr>
<?php } ?>
</table>
</div>
Но он продолжает говорить мне:
Примечание: Undefined индекс: идентификатор в C: \ WAMP \ WWW ...
Так что в этом случае, что должно быть в столбце «оплата» для этого пользователя. '50'? – Utsav
нет, просто показывая строку, где он фактически заплатил –
Почему у этого клиента есть два разных клиента? И что это за поле total_debts? – VolkerK