Сравнить записи в двух таблицах MYSQL

362
26 июня 2017, 20:48

Есть таблица patients, где хранятся паспортные данные пациента и поля id-пациента (уникальный), ФИО пациента и т д. И ещё есть таблица priem где хранятся данные касаемые приёма пациентов, id_пациента (чтобы связывать с таблицей patients чтобы знать какой приём какому пациенту принадлежит) вот вытаскиваю из таблицы patients "карту" всех пациентов , а у некоторых ещё нет истории т.е. приёмов.

А, надо чтобы php покрасил их в красный цвет. Например, если у пациента нет ни одного приёма в таблице priem, то он покрасил шрифт в красный.

  • Как можно сделать это через PHP?
  • Объясните логику пожалуйста или идеи у кого какие?

Буду рад любому предложению.

Пытаюсь делать такой запрос:

SELECT CASE WHEN patients.card_id = priem.card_id THEN '0' ELSE '1' END FROM patients, priem

Но, как потом на PHP сказать что card_id равняется нулю то при выводе покрась его в красный.

А, сейчас пока вывожу всех пациентов так независимо от того есть ли у них приёмы или нет:

 <tbody> <?php  $result = mysqli_query($con,"SELECT * FROM patients ") 
            or die(mysqli_error());         
             ?> 
       <?php    while($row = mysqli_fetch_assoc( $result )) { ?>                                 <tr>
                                            <td><a href="view_patient.php?id=<?php echo $row['card_id']; ?>"><?php echo (" ".$row["card_id"]." "); ?></a></td>
                                            <td><a href="view_patient.php?id=<?php echo $row['card_id']; ?>"><?php echo (" ".$row["fio"]." "); ?></a></td>
                                            <td><a href="view_patient.php?id=<?php echo $row['card_id']; ?>"><?php echo (" ".$row["adress"]." "); ?></a></td>
                                            <td><a href="view_patient.php?id=<?php echo $row['card_id']; ?>"><?php echo (" ".$row["phone"]." "); ?></a></td>
                                            <td><a href="view_patient.php?id=<?php echo $row['card_id']; ?>">Посмотреть</a></td>
                                            <td><a href="del_patient.php?id=<?php echo $row['card_id']; ?>">Удалить</a> <a href="edit_patient.php?id=<?php echo $row['card_id']; ?>" rel = "facebox">Изменить  </a></td>
                                        </tr><?php }; ?>
                                    </tbody>
Answer 1

По хорошему такие вещи надо делать через LEFT JOIN. Например:

SELECT t1.*,t2.patient_id FROM patient AS t1 LEFT JOIN priem AS t2 ON t1.id=t2.patient_id

Приблизительно как-то так. Если t2.patient_id равно NULL, значит приёмов у этого пациента нет (или не было).Таким образом Вы получаете простой и надёжный признак, по которому можете определить "наличие приёмов".

Дальше дело за малым. Если t2.patient_id равно NULL устанавливаете для элемента разметки стиль, который покрасит его в красный цвет.

READ ALSO
Как сделать переход на страницу

Как сделать переход на страницу

Подскажите, как присвоить item[id] для перехода на след страничку, и куда вставит код?

313
Дерево сценариев в telegram-боте php

Дерево сценариев в telegram-боте php

Всем приветДелаю чат-бота для телеграм

499
Записать запросы в табличку базы данных

Записать запросы в табличку базы данных

Вопрос такой: создал табличку в ней поле 'text' в него хочу поместить текст запросов к этой же базе через точку с запятойчто-бы потом можно было...

259
Объединение UPDATE и INSERT

Объединение UPDATE и INSERT

Добрый день!

220