[RESOLU] [AIDE] REFLECTION PROJET PEDIGREE

Eléphant du PHP | 94 Messages

19 janv. 2016, 15:28

Bonjour amis PHPFRANCE !!! :D

Voilà je dois dev un system de pedigree pour un ami

niveau sql, la table est toute simple :
BAGUE|SEXE|ANNEE|MERE|PERE

id unique est la bague est on spécifie la mère et le père (bague aussi).

j'ai un tableau comme suite pour la génération du pedigree sur 4 génération() :

Code : Tout sélectionner

ARRIERE-GRAND-PERE(A-A1) GRAND-PERE(A1) ARRIERE-GRAND-MERE(B-A1) PERE(A) GRAND-MERE(A2) ARRIERE-GRAND-PERE(A-A2) ARRIERE-GRAND-MERE(B-A2) PIGEON(1) ARRIERE-GRAND-PERE(A-B1) GRAND-PERE (B1) ARRIERE-GRAND-MERE(B-B1) MERE(B) GRAND-MERE (B2) ARRIERE-GRAND-PERE(A-B2) ARRIERE-GRAND-MERE(B-B2)
sachant qu'il sagit toujours du pere et mere du précedent correspondant à l'id unique (bague)

Donc j'ai besoin de votre aide sur la réflexion d'affichage des données ?

Dois utilisée une fonction recursive pour le tableau ?

si oui, je sais pas comment trop procéder, si vous pouvez m'orientez car je sèche !!!
~~~~$$$$www.asptt-dunkerque.com$$$$~~~~

Eléphant du PHP | 94 Messages

19 janv. 2016, 21:57

personne pour m'aider ?
si j'ai pas été assez clair, c'est vrai que c'est pas évident à expliquer, mais c'est pour éviter de faire 36 requêtes de bourrin relaté au père et mère du précendent dans le tableau !!!

sachant que pigeon est l'id de départ, le père et la mère de celui ci est dans une colonne qui fait référence à une bague, ensuite pour le grand père (paternel) et grand mère (paternel) c'est la correspondance de la bague père, et ainsi de suite jusqu'au arrière-arrière-grand-père/mère (paternel) #idem pour la série (maternel).

c'est comme un arbre généalogique mais en 4 générations, ascendant.

Je sais pas si j'arrive à me faire comprendre ??? si quelqu'un a déjà bosser sur ce genre de projet ? me donner la puce à l'oreil serais sympa de sa part ...
~~~~$$$$www.asptt-dunkerque.com$$$$~~~~

Eléphant du PHP | 243 Messages

19 janv. 2016, 23:09

Bonjour,

Je vais te demander un peu plus d'informations car je n'ai pas totalement compris ce que tu cherches à faire :
Donc j'ai besoin de votre aide sur la réflexion d'affichage des données ?
Quel style d'affichage veux-tu faire ? Un arbre généalogique ?
Dois utilisée une fonction recursive pour le tableau ?
Si le but est de récupérer des informations sur une identité, puis de récupérer des informations sur ses 2 parents et ainsi de suite, oui la fonction récursive sera selon moi la plus nécéssaire dans ton cas.

Ça donnerait donc une fonction qui afficherait les données de l'identité qu'elle vérifie, puis une fois les données transmises, elle se rappellerait 2 fois avec : Les informations du père, les informations de la mère. Et ceci jusqu'à que le dernier parent n'ait aucun parent.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphant du PHP | 94 Messages

20 janv. 2016, 09:55

Oui Ascla, c'est effectivement cela, c'est bien ce qui me semblé, la méthode récursive me semble la plus adapté !!!

c'est effectivement un contrôle du père/mère précédent ...
~~~~$$$$www.asptt-dunkerque.com$$$$~~~~

Eléphant du PHP | 94 Messages

20 janv. 2016, 12:59

En faite au final il faut que je me retrouve avec un tableau comme ceci :

http://zizzou59.free.fr/pedigree/pedcanvas.php

çà seras peut etre plus parlant !!!

j'avais au début penser à faire une fonction d'appel sql, et l'appeller pour chaque pere/mere, mais bon !!!
pour la recursivité je t'avoue que je bloque un peu ...


exemple premier appel sql :
$id="id du pigeon" via $_get()
un mysqli_query() avec select (bague,nom,annee,pere,mere)
et un fetch_assoc()

ensuite je reflechi sur comment à chaque fois passer la variable correspondante afficher afin de reformuler la requête !!!

sachant qu'il y a 4000 lignes à exploiter si j'utilise la recursivité, c'est un peu lourd de mettre çà ds un tableau et ensuite l'exploité non ?
~~~~$$$$www.asptt-dunkerque.com$$$$~~~~

Eléphant du PHP | 243 Messages

20 janv. 2016, 19:58

De tout façon, je pense que tu n'auras pas le choix (quoique il doit y avoir moyen de réduire le nombre de requête :? ). Il faudra exécuté pour chaque appel une requête SQL qui va récupérer les données nécéssaire.
Pour résumer, il faudra créer une fonction qui prendre en argument une bague.
Dans cette fonction, la première étape sera d'exécuter une requête pour récupérer les 2 parents.
Une fois les données récupérées, il faudra mettre en place une condition du style :
  • Si la bague n'a pas de parent, alors on return une valeur nulle (Cette partie est importante pour éviter que ça ne termine jamais).
    Si la bague possède un parent male, on fait un return fonction(bagueduparentmale)
    Si la bague possède un parent femelle, on fait un return fonction(bagueduparentfemelle)
Ensuite, il faudra trouver un moyen pour chaque appel de créer un affichage et je pense qu'il te faudra instaurer un système de rang qui sera transmis à travers chaque appel.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphant du PHP | 94 Messages

20 janv. 2016, 21:28

oui vraiment pas évident, mais bon faut bien que je me creuse un peu !!! c'est que je veux vraiment optimiser le script, le moins possible de requête, et de condition et d'appel.

on verra bien, en tout cas merci pour ton point de vue !!!!

je mets en resolu, afin de ne pas laisser le sujet en cas de non retour immédiat ...
~~~~$$$$www.asptt-dunkerque.com$$$$~~~~

Eléphant du PHP | 243 Messages

20 janv. 2016, 23:24

Pour l'optimisation de ton script, à partir d'une fonction par récurrence, de toute façon du devras à chaque fois faire un nouvel appel SQL.
Bon courage !
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini