查詢專業(yè)領域(存儲為任何選定項目數(shù)組)不起作用。我正在嘗試找出一種在編輯時獲取注冊農民的專業(yè)知識領域的方法。
我有兩張桌子。數(shù)據(jù)庫中的登記農民表和專業(yè)領域表。
專業(yè)領域存儲在專業(yè)領域表中。
注冊農民表包含注冊農民的所有數(shù)據(jù)。
這是專業(yè)領域表:
area_of_expertise_id | id_number_of_the_farmer | areas_of_expertise | register_farmer_id |
---|---|---|---|
1 | 23232223 | 培養(yǎng) | 1 |
2 | 23233453 | 收獲 | 2 |
注冊農民表:
register_farmer_id | name_of_the_farmer | age_of_the_farmer |
---|---|---|
1 | 無名氏 | 23 |
2 | 瑪麗·多伊 | 34 |
我想在專業(yè)領域表中擁有一個注冊農民 ID,就像在注冊農民表中一樣。我猜這將是一個外鍵。
我正在嘗試查詢某個農民的所有專業(yè)領域。查詢到的數(shù)據(jù)將顯示在其頁面上以供編輯。
將數(shù)據(jù)存儲在專業(yè)領域效果很好。我使用 foreach 循環(huán)來存儲數(shù)據(jù)?,F(xiàn)在的問題是查詢數(shù)據(jù)。
請幫忙。
您可能需要過度考慮您的表格設計,因為這看起來像經(jīng)典的 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 = ?
無論您是查看所有農民還是僅查看一個農民,在評估信息時,您都將訪問如下專業(yè)領域:
SELECT * FROM `expertise` WHERE farmerID = ?
這就是它的全部內容。 假設是 1:1 的關系(如“每個農民只有一個專業(yè)領域”),你也可以這樣一次性寫出來:
SELECT * FROM `farmers`, `expertise` WHERE ID = ? and farmerID = ID;