Boucle while
t671
Messages postés
1476
Date d'inscription
Statut
Membre
Dernière intervention
-
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème avec mes boucles while.
Je cherche à afficher des enregistrements qui sont liés par un de leurs champs.
Dans ma base, un enregistrement comporte notamment l'id, le num_indiv, le num_pere, .....
On retrouve automatiquement tous les num_pere en num_indiv.
En partant d'un enregistrement, je veux afficher tous ceux qui y sont liés en comparrant le num_indiv et le num_pere.
Donc j'affiche mon premier enregistrement. Je regarde son num_pere et je cherche le num_indiv équivalent pour l'afficher (jusque là, c'est ok).
Mais il peut y avoir plusieurs enregistrement qui ont le même num_pere. Dans ce cas ce serait des frères. Et je les affiche ......
Ensuite je dois chercher les enregistrements qui comportent un num_pere égal aux num_indiv des "frères" cités ci-dessus. etc .................
Et là, j'affiche une quantité d'enregistrements mais qui n'ont pas de rapport entre eux (hormis les deux premiers (row1 et row2) .....
Je dois avoir une erreur qqpart, mais où ???
Merci
J'ai un problème avec mes boucles while.
Je cherche à afficher des enregistrements qui sont liés par un de leurs champs.
Dans ma base, un enregistrement comporte notamment l'id, le num_indiv, le num_pere, .....
On retrouve automatiquement tous les num_pere en num_indiv.
En partant d'un enregistrement, je veux afficher tous ceux qui y sont liés en comparrant le num_indiv et le num_pere.
Donc j'affiche mon premier enregistrement. Je regarde son num_pere et je cherche le num_indiv équivalent pour l'afficher (jusque là, c'est ok).
Mais il peut y avoir plusieurs enregistrement qui ont le même num_pere. Dans ce cas ce serait des frères. Et je les affiche ......
Ensuite je dois chercher les enregistrements qui comportent un num_pere égal aux num_indiv des "frères" cités ci-dessus. etc .................
Et là, j'affiche une quantité d'enregistrements mais qui n'ont pas de rapport entre eux (hormis les deux premiers (row1 et row2) .....
Je dois avoir une erreur qqpart, mais où ???
$select1 = 'SELECT * FROM individus WHERE id LIKE "168"'; //je cherche le 1° enregistrement $result1 = mysql_query($select1,$link) or die ('Erreur : '.mysql_error() ); $row1 = mysql_fetch_array($result1); echo '<b>'.$row1['nom'].' '.$row1['prenom'].'</b><br>'; $select = 'SELECT * FROM individus' ; //je vais lancer une recherche sur la base complète $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); while ($row = mysql_fetch_array($result)) { $select2 = 'SELECT * FROM individus WHERE num_pere LIKE "'.$row1['num_indiv'].'"'; $result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() ); while ($row2 = mysql_fetch_array($result2)) { echo '<b>'.$row2['nom'].' '.$row2['prenom'].'</b><br>'; } $row1['num_indiv'] = $row2['num_indiv']; }
Merci
11 réponses
Salut,
1. Je ne comprends pas bien le résultat recherché. On cherche le père et les frères de chaque enregistrement ?
2. Utilise un "=" au lieu de LIKE.
3. Pourquoi avoir écrit :
1. Je ne comprends pas bien le résultat recherché. On cherche le père et les frères de chaque enregistrement ?
2. Utilise un "=" au lieu de LIKE.
'SELECT * FROM individus WHERE num_pere ='.$row1['num_indiv'].'; //Pas besoin des " car c'est un nombre numérique
3. Pourquoi avoir écrit :
$row1['num_indiv'] = $row2['num_indiv'];
En fait, c'est un arbre généalogique descendant que j'essaye de faire.
J'ai un premier individu. Je recherche ses enfants. Ensuite je recherche les enfants des enfants ........
Tous les enfants ont le même champs num_pere (puisqu'ils ont le même père).
J'ai écrit
J'ai un premier individu. Je recherche ses enfants. Ensuite je recherche les enfants des enfants ........
Tous les enfants ont le même champs num_pere (puisqu'ils ont le même père).
J'ai écrit
$row1['num_indiv'] = $row2['num_indiv'];pour changer d'individu quand les enfants du précédent ont été trouvés.
Bonjour
si tous ont le même nom, il n'y a qu'a prendre tous les enregistrements dont le nom est le meme que celui lu en premier= nom1père
puis lire enregistrement suivant en bouclant jusqu'à ce que nom différent de nom1père
il faut alors faire nom1père=nom (qu'on vient de trouver)
et boucler en reprenant tous les enregistrements qui ont nom1pere = nom
et cela jusqu'a la fin de fichier.
si tous ont le même nom, il n'y a qu'a prendre tous les enregistrements dont le nom est le meme que celui lu en premier= nom1père
puis lire enregistrement suivant en bouclant jusqu'à ce que nom différent de nom1père
il faut alors faire nom1père=nom (qu'on vient de trouver)
et boucler en reprenant tous les enregistrements qui ont nom1pere = nom
et cela jusqu'a la fin de fichier.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dans ce cas, il n'y aura pas de classement de descendance .......... père-enfant !
Tout sera mélangé !
Tout sera mélangé !
Resalut
Entièrement d'accord!!
mais dans tes enregistrements tu ne donnes aucun champ qui differencie le pere du fils !! il manque un indicateur de filiation ???
Entièrement d'accord!!
mais dans tes enregistrements tu ne donnes aucun champ qui differencie le pere du fils !! il manque un indicateur de filiation ???
Dans chaque enregistrement, j'ai le num_pere (soit le numéro du père qui correspond au num_indiv d'un enregistrement).
Et en effet, je n'ai que cela ! Faut faire avec ........... :)
Et en effet, je n'ai que cela ! Faut faire avec ........... :)
re.....
Si on ne peut différencier le père du fils, tu ne peux avoir qu'un groupe ayant le même nom sans savoir qui est le fils de qui..
quelle est la différence entre id et num-ind ??
peut-etre que la réponse est là
Si on ne peut différencier le père du fils, tu ne peux avoir qu'un groupe ayant le même nom sans savoir qui est le fils de qui..
quelle est la différence entre id et num-ind ??
peut-etre que la réponse est là
Il n'y a aucun lien entre l'id et le num_indiv.
Donc, d'aprèe toi, il n'est pas possible de faire ce que je veux avec uniquement le numéro du père dans l'enregistrement.
Faudrait que je rajoute le numéro du ou des enfants dans chaque enregistrement !
Mais est-il possible de créer un petit script qui mette la base à jour ?
Donc, d'aprèe toi, il n'est pas possible de faire ce que je veux avec uniquement le numéro du père dans l'enregistrement.
Faudrait que je rajoute le numéro du ou des enfants dans chaque enregistrement !
Mais est-il possible de créer un petit script qui mette la base à jour ?