Tom's Guide > Forum > Programmation > Requêtes MySQL

Requêtes MySQL

Forum Programmation : Requêtes MySQL

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,

J'ai installé une BDD MySQL de généalogie comprenant notamment les deux tables suivantes:

1 - Table oxg_individuals
champs:
id_individual
id_patronym
first_name
id_father
id_mother

(dans cette table chaque enregistrement comprend en principe à la fois un champ id_individual ET un champ id_father et id_mother: il s'agit des individus dont les deux parents sont identifiés - chacun des parents figurant dans la même table avec des id_individuals bien entendus différents, avec leurs propres id_father et id_mother...)

2 - Table oxg_patronyms
champs:
id_patronym
libelle

Partant de là, je cherche à extraire et afficher une liste d'individus qui se présenterait sur deux lignes et de la façon suivante:

TARTEMPION (oxg_patronyms.libelle) Pierre (oxg_patronyms.first_name)
Père: TARTEMPION (oxg_patronyms.libelle) Jean-Marie (oxg_patronyms.first_name )
Mère: MACHINE (oxg_patronyms.libelle) Marcelle (oxg_patronyms.first_name )

En vue d'extraire la première ligne, j'ai codé de la façon suivante:

$sql = "SELECT first_name,oxg_patronyms.libelle FROM oxg_individuals,oxg_patronyms WHERE oxg_individuals.id_patronym=oxg_patronyms.id_patronym"; // première requête SQL portant sur l'individu principal

$reponse = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()) ; // envoi de la requête

// boucle pour lister ce que contient la table :

while ($data = mysql_fetch_array($reponse) )
{
?>

<p>

<?php echo $data['libelle']; ?> <?php echo $data['first_name']; ?>
<br/>
</p>

Tout cela est très basique et fonctionne à merveille, mais comment compléter le code pour avoir mes deux lignes de l'identité des parents?

Espérant avoir été assez claire, je suis d'avance très reconnaissant à celui, ou ceux, qui me mettront sur le bon chemin...
Cordialement,
Asonardug

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Ce sujet a été déplacé de la catégorie Logiciels vers la catégorie Programmation par Yama310

------------------------------ Topic Aviation | Vos régions | Les Tutos IDN
Mon inconnue du Métro 6
Répondre à Yama310

SiM07 a écrit :

Qu'appelles tu identité ?



Bonsoir,

Par identité, j'entends (au plus simple) l'indication du nom (qu'on appelle aussi patronyme) et du prénom du père, et celui de la mère.

Cordialement
Asonardug

Répondre à asonardug

Dans SELECT tu n'as qu'à rajouter les champs que tu souhaites. Mais à priori là ta requête te donne le nom et prénom des gens, c'est le champs libelle.

------------------------------ 20minutes.fr, l'information en continu.
Répondre à SiM07

Sim07,

Et non, cela ne marche pas de rajouter tout simplement les champs souhaités.

Pourquoi?

Je reprends:

La table Table oxg_individuals comprend (notamment) les champs que j'ai indiqué, c'est à dire: id_individual , id_patronym , first_name , id_father ,id_mother .

Chaque individu est concerné par un enregistrement. Et dans cet enregistrement il y a le champ id_individual qui est le numéro propre à la personne, et les champs id_father et id-mother, et ceux-ci qui sont identiques aux id_individual du père et de la mère - QUI SONT AUSSI DES ENREGISTREMENTS DE LA MEME TABLE....

Sauf si vous m'indiquez comment coder pour arriver à mon résultat en ajoutant seulement des champs.

En réfléchissant, il me semblait qu'il faudrait "relever" l'id_father de l'enregistrement, et trouver le moyen de demander à PHP/MySQL de rechercher dans la base (et d'afficher) l'enregistrement dans lequel l'id_individual est égal à l'id_father de l'enregistrement "de base" sur lequel porte la première requête.

Je m'excuse si je ne me fais pas suffisamment bien comprendre.

Cordialement,
Asonardug

Répondre à asonardug
Tom's Guide > Forum > Programmation > Requêtes MySQL
Aller à :

Il y a 1379 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens