查詢專業領域(儲存為任何選定項目陣列)無法運作。我正在嘗試找出一種在編輯時獲取註冊農民的專業知識領域的方法。
我有兩張桌子。資料庫中的登記農民表和專業領域表。
專業領域儲存在專業領域表中。
註冊農民表包含註冊農民的所有資料。
這是專業領域表:
area_of_expertise_id | #id_number_of_the_farmer | ##areas_of_expertise | ##register_farmer_id |
---|---|---|---|
1 | 23232223 | 培養 | 1 |
2 | 23233453 | 收穫 | 2 |
註冊農民表:
register_farmer_id | name_of_the_farmer | age_of_the_farmer |
---|---|---|
1 | 無名氏 | 23 |
2 | 瑪麗·多伊 | 34 |
我想在專業領域表中擁有一個註冊農民 ID,就像在註冊農民表中一樣。我猜這將是一個外鍵。
我正在嘗試查詢某個農民的所有專業領域。查詢到的資料將顯示在其頁面上以供編輯。
將資料儲存在專業領域中效果很好。我使用 foreach 迴圈來儲存資料。現在的問題是查詢資料。
請幫忙。
P粉0601123962024-04-05 12:46:13
您可能需要過度考慮您的表格設計,因為這看起來像經典的 1:n 關係(即使是 1:1,訊息也不會改變)
嘗試這樣:
Farmers: ID (PRIMARY, AutoIncrement), name, age Expertises: farmerID (index), areaOfExpertise
插入如下(假設準備好的語句):
INSERT INTO `farmers` VALUES (NULL, ?, ?)`
然後,您從活動連接中檢索「最後插入 ID」並將其放入第二個表中。
INSERT INTO `expertise` VALUES (?, ?)
要檢索訊息,您需要採取相反的方法。要檢索所有農民,您可以使用查詢
SELECT * FROM `farmers`
並且,要僅獲取特定農民(假設您有 ID),您可以使用:
SELECT * FROM `farmers` WHERE ID = ?
無論您是查看所有農民還是僅查看一個農民,在評估資訊時,您都將訪問以下專業領域:
SELECT * FROM `expertise` WHERE farmerID = ?
這就是它的全部內容。 假設是 1:1 的關係(如「每個農夫只有一個專業領域」),你也可以這樣一次寫出來:
SELECT * FROM `farmers`, `expertise` WHERE ID = ? and farmerID = ID;