我的數據庫保存了以下數據:如何通過表單添加多對多關係?
fish
---
id
name
cooking_type_id
---
cooking_type
---
id
name
---
cooking_type_relationships
---
fish_id
cooking_type_id
---
我想在其中添加一條魚到數據庫中創建窗體。這一切都正常,但添加許多關係時遇到問題。通過表單,我製作了一個複選框列表,其中包含所有烹飪類型,用戶點擊所有適合魚類的烹飪類型。但是,我如何查詢數據庫,以便很好地創建關係?
下面是創建的複選框列表的代碼:
include 'conn.php';
echo "<ul class='cooking-list'>";
$query = "SELECT * FROM cooking_type c";
$result = $mysqli->query($query);
mysqli_query($mysqli, "SET NAMES 'utf8'");
while($row = mysqli_fetch_array($result))
{
// run through the results from the database, generating the checkboxes
echo "\n\t<li>";
echo "<input id='".$row['name']."' type='checkbox' name'type_id'><p>{$row['name']}</p>";
echo "</li>";
echo "<br><br>";
}
echo "</ul>";
mysqli_close($mysqli);
編輯:我沒有收到查詢才能正常工作。我現在有點困惑。下面是我想後查詢:
include 'conn.php';
mysqli_query($mysqli, "SET NAMES 'utf8'");
$query = "INSERT INTO fish (name, image, about, season_id)
VALUES ('$_POST[name]', '$_POST[image]', '$_POST[about]', '$_POST[season_id]');
INSERT INTO cooking_type_relationships (fish_id, cooking_type_id)
VALUES (mysqli_insert_id, cooking_type_id);"
$mysqli->query($query);
mysqli_close($mysqli);
我不知道我理解你的問題,你想我們弄清楚魚和菜/烹飪類型之間的關係/模式? – Epodax
您應該考慮使用PDO而不是mysqli函數。這些關係應該使用外鍵進行設置,並使用這些鍵上的連接進行選擇。學習構建一個框架 - 可以處理這些繁重的工作,包括關係,這可能是有益的。閱讀laravel,phalcon或codeigniter。 –
從您的描述來看,它聽起來不像多對多的關係。你有一種魚可以有更多的烹飪類型......這是一對多的關係,你可以在烹飪類型中指向一條魚的外鍵(外鍵是一個指向魚) – broch