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