SQL, PHP - добавление ограничения в выпадающую функцию - PullRequest
0 голосов
/ 30 мая 2018

SQL, PHP вопрос о добавлении ограничения в функцию добавления.

У меня есть родительская таблица собак и дочерняя таблица медицинских записей

собак

==================================
id | name | breed | gender | dob |
==================================

id = первичный ключ

healthRecord

====================================
id | fluVax | allergies |  memberFK
====================================

memberFK является УНИКАЛЬНЫМ и является внешним ключом, указывающим на dogs.id

Код допускает только одну запись здоровья на собаку.Отношение один-к-одному.

Этот бит кода вставляет данные точно

if(!($stmt = $conn->prepare("INSERT INTO healthRecord(fluVax, allergies, 
memberfk) VALUES (?,?,?)")))
{
    echo "Prepare failed: "  . $stmt->errno . " " . $stmt->error;
}
}
if(!($stmt->bind_param("ssi",$_POST['fluVax'],$_POST['allergies'], 
$_POST['memberId']))) 

Но я уверен, что этот код мне нужно редактировать

<p> Dog's Name: <select name="dogId">
<?php
    foreach($dogs as $dog)
    {
        echo "<option value='" . $dog["id"] . "'>" . $dog["name"] . " 
</option>";
    }
?>

    <p>Flu Vax: <input type='date' name='fluVax'/></p>
    <p>Conditions: <input type='text' name='conditions'></p>
<button type="submit">Submit</button>
</form>

Это приводит к раскрытию списка всех собак в базе данных, и я хочу изменить раскрывающийся список, чтобы просто показать собак, у которых его еще нет, поэтому для каждой собаки будет только одна запись.Поскольку для healthRecord.memberfk задано значение UNIQUE, если пользователь пытается добавить запись для собаки, у которой уже есть запись, ошибка будет возвращена правильно.Но то, что я хочу, это выпадающий список, который позволяет пользователю выбирать только собак, у которых нет существующей записи

1 Ответ

0 голосов
/ 30 мая 2018

Трудно понять вашу проблему ... но я постараюсь;)

Так что, если я вас понял, для каждой собаки есть только 1 HealthRecord.Итак, прежде всего, вы должны сделать healthRecord.memberfk УНИКАЛЬНЫМ.Чтобы избежать двойных записей.

Во-вторых: Вы должны сделать ВЫБОР собак (возможно, с СОЕДИНЕНИЕМ на healthRecord), чтобы собаки с данными о здоровье распечатывали выбранные (или вставляли данные) так, как вам нужно.и только те данные, которые вам нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...