Se connecter / S'enregistrer
Votre question

Requêtes MySQL

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
20 Février 2009 14:56:42

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

Autres pages sur : requetes mysql

20 Février 2009 17:39:35

Qu'appelles tu identité ?
m
0
l
20 Février 2009 17:42:04

SiM07 a dit :
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
m
0
l
Contenus similaires
20 Février 2009 17:45:21

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.
m
0
l
20 Février 2009 18:03:52

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

m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS