这实际上是多对一的关系,因为您有多个剂量与一种药物有关:http: //net.tutsplus.com/tutorials/databases/sql-for-beginners-part-3-database-关系/
至于您的问题,这取决于您希望如何使用数据的上下文。如果剂量旨在用作药房提供的各种产品的参考(即一小瓶曲马多和一大瓶),那么我可能会为每个剂量添加一个新行,因为您可能会首先有一组有限的值可供选择,它更能代表商店的库存情况。然后,您可以使用这样的嵌套循环遍历它:
$drugs = array()
while ($row = mysql_fetch_array($result)) {
$drugs[$row['name']][] = $row['dosage_amount']
}
foreach ($drugs AS $drug => $dosages) {
echo '<h2>'. htmlentities($drug, ENT_COMPAT, 'UTF-8') .'</h2>';
foreach ($dosages AS $dosage) {
echo '<br><em>'. htmlentities($dosage, ENT_COMPAT, 'UTF-8') .'</em>';
}
}
参考:PHP MySQL 显示按常用字段分组的多行
另一方面,如果它用于跟踪处方,则有一个单独的表格id | drug_id | dosage_amount
,沿着 ,以及您需要的任何其他信息。
如果您选择第二个选项,您将使用 anINNER JOIN
来获取所需的数据:
SELECT drugs.name, prescriptions.dosage_amount
FROM drugs
INNER JOIN prescriptions
ON drugs.id=prescriptions.drug_id
参考:http ://www.w3schools.com/sql/sql_join_inner.asp
从那里,您可以像以前一样迭代它:
while ($row = mysql_fetch_array($result)) {
echo "Drug Name: {$row[0]} Drug Weight: {$row[1]}"
}