Maison  >  Questions et réponses  >  le corps du texte

Comment interroger plusieurs éléments sélectionnés stockés dans la base de données

L'interrogation des domaines d'expertise (stockés sous forme de tableau d'éléments sélectionnés) ne fonctionne pas. J'essaie de trouver un moyen d'obtenir les domaines d'expertise des agriculteurs enregistrés lors de l'édition.

J'ai deux tables. Tableau des agriculteurs inscrits et tableau des champs professionnels dans la base de données.

Les champs professionnels sont stockés dans la table des champs professionnels.

Le tableau des agriculteurs enregistrés contient toutes les données des agriculteurs enregistrés.

Voici la table du terrain professionnel :

area_of_expertise_id id_number_of_the_farmer domaines_d_expertise register_farmer_id
1 23232223 Culture 1
2 23233453 Récolte 2

Formulaire d'agriculteur enregistré :

register_farmer_id nom_du_fermier âge_of_the_farmer
1 Anonyme 23
2 Mary Doe 34

Je souhaite avoir un identifiant d'agriculteur inscrit dans la table des champs professionnels tout comme dans la table des agriculteurs inscrits. Je suppose que ce sera une clé étrangère.

J'essaie d'interroger tous les domaines d'expertise d'un certain agriculteur. Les données interrogées seront affichées sur sa page pour édition.

Stocker les données dans les domaines professionnels fonctionne bien. J'utilise la boucle foreach pour stocker des données. Le problème est maintenant d'interroger les données.

S'il vous plaît, aidez-moi.

P粉347804896P粉347804896179 Il y a quelques jours316

répondre à tous(1)je répondrai

  • P粉060112396

    P粉0601123962024-04-05 12:46:13

    Vous devrez peut-être trop réfléchir à la conception de votre table car cela ressemble à une relation 1:n classique (même si c'est 1:1, les informations ne changent pas)

    Essayez ceci :

    Farmers:
    ID (PRIMARY, AutoIncrement), name, age
    
    Expertises:
    farmerID (index), areaOfExpertise

    Insérez ce qui suit (en supposant des déclarations préparées) :

    INSERT INTO `farmers` VALUES (NULL, ?, ?)`

    Ensuite, vous récupérez le "Last Insert ID" de la connexion active et le placez dans le deuxième tableau.

    INSERT INTO `expertise` VALUES (?, ?)

    Pour récupérer des informations, vous devez faire l'inverse. Pour récupérer tous les agriculteurs, vous pouvez utiliser la requête

    SELECT * FROM `farmers`

    Et, pour obtenir uniquement des agriculteurs spécifiques (en supposant que vous ayez la pièce d'identité), vous pouvez utiliser :

    SELECT * FROM `farmers` WHERE ID = ?

    Que vous consultiez tous les agriculteurs ou un seul agriculteur, lors de l'évaluation des informations, vous accéderez à des domaines d'expertise tels que :

    SELECT * FROM `expertise` WHERE farmerID = ?

    C’est de ça qu’il s’agit. En supposant une relation 1:1 (du type « Chaque agriculteur n'a qu'un seul domaine d'expertise »), vous pouvez également l'écrire d'un seul coup comme ceci :

    SELECT * FROM `farmers`, `expertise` WHERE ID = ? and farmerID = ID;

    répondre
    0
  • Annulerrépondre