SQL,PHP关于向add函数添加约束的问题。
我有一个父表狗和一个子表健康记录
狗
@property
def file_exists(self):
try:
with open(self.file.path):
return True
except Exception:
return False
id =主键
healthRecord
==================================
id | name | breed | gender | dob |
==================================
memberFK是UNIQUE,是指向dogs.id
的forign键该代码仅允许每条狗一条健康记录。一对一的关系。
这段代码可以很好地插入数据
====================================
id | fluVax | allergies | memberFK
====================================
但我确定这是我需要编辑的代码
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'])))
这会导致数据库中所有狗的下拉,我想改变下拉菜单,只显示那些还没有狗的狗,这样每只狗只会有一条记录。因为healthRecord.memberfk设置为UNIQUE,如果用户尝试为已经有一个狗的狗添加记录,则会正确返回错误。但我想要的是一个下拉菜单,允许用户只选择没有现有记录的狗
答案 0 :(得分:1)
有点难以理解你的问题......但我会尝试;)
所以,如果我理解你,每只狗只有1个healthRecord。 首先,你应该使healthRecord.memberfk UNIQUE。为避免重复输入。
第二:您应该选择狗(可能在healthRecord上使用JOIN)来获取具有健康数据的狗,以您需要的方式打印选择(或插入数据),只打印您需要的数据。 / p>