Konstantin18ko
@Konstantin18ko
Стоматолог

Как выбрать последнюю связанную запись, уже из выбранного запроса?

<?php

include './connect.php';

$patient_search = "%" . htmlspecialchars($_POST['patient_search']) . "%";

$link = mysqli_connect($HOST, $USER, $PASSWORD, $SELECT_DB);
mysqli_set_charset($link, "UTF8");

/* проверка соединения */
if (mysqli_connect_errno()) {
    echo "Не удалось подключиться: %s\n", mysqli_connect_error();
    exit();
}

$stmt = mysqli_prepare($link, "SELECT `p`.`patient_family`, `p`.`patient_name`, `p`.`patient_surname`, "
        . "`d`.`doctor`, `c`.`card_in`, `c`.`enter_day`, "
        . "`dm`.`diagnosis`, `dm`.`diagnosis`, `g`.`gender` "
        . "FROM `cards` AS `c`, `patients` AS `p`, `doctors` AS `d`, `genders` AS `g`, `diagnosis_mkb` AS `dm` "
        . "WHERE `c`.`patient`=`p`.`id_patient` AND `c`.`doctor`=`d`.`id_doctor` AND `c`.`gender`=`g`.`id_gender` AND `dm`.`card`=`c`.`id_card` AND `p`.`patient_family` LIKE ? ORDER BY `c`.`enter_day`, `c`.`card_in` DESC ");

/* создаем подготавливаемый запрос */
if ($stmt) {
    /*  связываем параметры с метками  */
    mysqli_stmt_bind_param($stmt, 's', $patient_search);

    /* запускаем запрос */
    mysqli_stmt_execute($stmt);

    /* связываем переменные с результатами запроса */
    mysqli_stmt_bind_result($stmt, $patient_family, $patient_name, $patient_surname, $doctor, $card_in, $enter_day, $diagnosis, $mkb,  $gender);

    /* получаем значения */
    while (mysqli_stmt_fetch($stmt)) {
        if ($gender == 'Мужской' || $gender == "Женский в мужской") {
            echo "<a href='info.html?card_in=" . $card_in . "&enter_day=" . $enter_day . "'><div id=" . $card_in . "_" . $enter_day . "><b>Пациент: </b>$patient_family $patient_name $patient_surname <b>Лечащий врач: </b>$doctor "
            . "<br><b>Медицинская карта: </b>$card_in <b>Дата поступления: </b>" . date("d.m.Y", strtotime($enter_day)) . " <br> <b>Диагноз: </b>$diagnosis (МКБ-Х: $mkb) </div></a>";
        } else {
            echo "<a href='info.html?card_in=" . $card_in . "&enter_day=" . $enter_day . "'><div id=" . $card_in . "_" . $enter_day . "><b>Пациентка: </b>$patient_family $patient_name $patient_surname <b>Лечащий врач: </b>$doctor "
            . "<br><b>Медицинская карта: </b>$card_in <b>Дата поступления: </b>" . date("d.m.Y", strtotime($enter_day)) . " <br> <b>Диагноз: </b>$diagnosis (МКБ-Х: $mkb) </div></a>";
        }
    }

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);


При поиске по БД выводятся записи:
Иванов (Д1)
Иванов (Д2)
Иванов (Д3)

А надо чтоб только последняя:
Иванов (Д3)
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы