cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menanyakan beberapa elemen pilihan yang disimpan dalam pangkalan data

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粉347804896P粉347804896265 hari yang lalu476

membalas semua(1)saya akan balas

  • P粉060112396

    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;

    balas
    0
  • Batalbalas