Rumah > Soal Jawab > teks badan
Menyoal bidang kepakaran (disimpan sebagai susunan mana-mana item yang dipilih) tidak berfungsi. Saya cuba mencari cara untuk mendapatkan bidang kepakaran petani berdaftar semasa mengedit.
Saya ada dua meja. Jadual petani berdaftar dan jadual lapangan profesional dalam pangkalan data.
Bidang profesional disimpan dalam jadual bidang profesional.
Jadual petani berdaftar mengandungi semua data petani berdaftar.
Ini adalah jadual bidang profesional:
bidang_id_kepakaran | nombor_id_petani | bidang_kepakaran | daftar_id_petani |
---|---|---|---|
1 | 23232223 | Penanaman | 1 |
2 | 23233453 | Tuai | 2 |
Borang petani berdaftar:
daftar_id_petani | nama_petani | usia_peladang |
---|---|---|
1 | Tanpa Nama | 23 |
2 | Mary Doe | 34 |
Saya ingin mempunyai ID petani berdaftar dalam jadual bidang profesional, sama seperti dalam jadual petani berdaftar. Saya rasa ini akan menjadi kunci asing.
Saya cuba menanyakan semua bidang kepakaran petani tertentu. Data yang ditanya akan dipaparkan pada halamannya untuk diedit.
Simpan data di kawasan profesional berfungsi dengan baik. Saya menggunakan gelung foreach untuk menyimpan data. Masalahnya sekarang ialah menanyakan data.
Tolong bantu.
P粉0601123962024-04-05 12:46:13
Anda mungkin perlu terlalu memikirkan reka bentuk meja anda kerana ini kelihatan seperti hubungan 1:n klasik (walaupun 1:1, maklumat tidak berubah)
Cuba ini:
Farmers: ID (PRIMARY, AutoIncrement), name, age Expertises: farmerID (index), areaOfExpertise
Masukkan perkara berikut (dengan mengandaikan kenyataan yang disediakan):
INSERT INTO `farmers` VALUES (NULL, ?, ?)`
Kemudian anda mendapatkan semula "ID Sisipan Terakhir" daripada sambungan aktif dan meletakkannya ke dalam jadual kedua.
INSERT INTO `expertise` VALUES (?, ?)
Untuk mendapatkan maklumat anda perlu melakukan sebaliknya. Untuk mendapatkan semula semua petani, anda boleh menggunakan pertanyaan
SELECT * FROM `farmers`
Dan, untuk mendapatkan hanya petani tertentu (dengan andaian anda mempunyai ID) anda boleh menggunakan:
SELECT * FROM `farmers` WHERE ID = ?
Sama ada anda melihat semua petani atau hanya seorang petani, apabila menilai maklumat anda akan mengakses bidang kepakaran seperti:
SELECT * FROM `expertise` WHERE farmerID = ?
Itulah maksudnya. Dengan mengandaikan hubungan 1:1 (seperti "Setiap petani hanya mempunyai satu bidang kepakaran"), anda juga boleh menulisnya sekali gus seperti ini:
SELECT * FROM `farmers`, `expertise` WHERE ID = ? and farmerID = ID;