Heim  >  Fragen und Antworten  >  Hauptteil

So fragen Sie mehrere in der Datenbank gespeicherte ausgewählte Elemente ab

Das Abfragen von Fachgebieten (gespeichert als Array beliebig ausgewählter Elemente) funktioniert nicht. Ich versuche, eine Möglichkeit zu finden, bei der Bearbeitung die Fachgebiete der registrierten Landwirte zu erhalten.

Ich habe zwei Tische. Tabelle der registrierten Landwirte und Tabelle der Berufsfelder in der Datenbank.

Berufsfelder werden in der Tabelle „Berufsfelder“ gespeichert.

Die Tabelle der registrierten Landwirte enthält alle Daten der registrierten Landwirte.

Das ist die Berufsfeldtabelle:

area_of_expertise_id id_number_of_the_farmer areas_of_expertise register_farmer_id
1 23232223 Anbau 1
2 23233453 Ernte 2

Formular für registrierte Landwirte:

register_farmer_id Name_des_Bauern age_of_the_farmer
1 Anonym 23
2 Mary Doe 34

Ich möchte eine registrierte Landwirt-ID in der Tabelle „Berufsfelder“ haben, genau wie in der Tabelle „Registrierte Landwirte“. Ich vermute, dass es sich hierbei um einen Fremdschlüssel handelt.

Ich versuche, alle Fachgebiete eines bestimmten Landwirts abzufragen. Die abgefragten Daten werden auf seiner Seite zur Bearbeitung angezeigt.

Daten in professionellen Bereichen speichern funktioniert gut. Ich verwende eine foreach-Schleife zum Speichern von Daten. Das Problem besteht nun darin, die Daten abzufragen.

Bitte helfen Sie.

P粉347804896P粉347804896179 Tage vor317

Antworte allen(1)Ich werde antworten

  • P粉060112396

    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;

    Antwort
    0
  • StornierenAntwort