PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » Recherche dans tableau » 03-08-2012 11:59:32

Merci de votre réponse, ce n'est pas un logiciel de généalogie que je cherche à faire, mais quelques petits scripts qui me rendent service et sont vite appelés sans lancer un logiciel complet.
Et comme un gedcom évolue tout le temps, créer à chaque fois de nouvelles tables sql ne me semble pas la solution.
Mais çà y est j'ai trouvé, ce n'est pas un search qu'il me fallait, puisque la clé indi est l'indice principal de ma table, donc avec mes clés trouvées sur les éléments des tables, j'accède directement à un autre élément, comment n'y avais je pas pensé plus tôt ??
Bonne journée.
Cordialement.
Théo

#2 Re : Forum Général PHP » Recherche dans tableau » 03-08-2012 11:59:32

Bonjour,
J'ai déjà toutes les infos sur le gedcom et j'ai déjà réalisé quelques scripts d'affichage d'infos de ces gedcom.
Mais ce que je veux faire je ne l'ai jamais encore trouvé nulle part, d'après un numéro sosa saisi on a toute la descendance sosa par sosa jusqu'au sosa 1.
Et le seul moyen, à ma connaissance, de circuler facilement dans un gedcom, est de le faire dans une table, que je rempli en début de script, car créer des tables sql pour chaque lancement du programme est un peu lourd.
Cordialement.
Théo

#3 Re : Forum Général PHP » Recherche dans tableau » 03-08-2012 11:59:32

Elles proviennent d'un fichier texte (gedcom) et non d'une table sql et je ne peux remplir des tables chaque fois que j'utilise le script !!

#4 Forum Général PHP » Recherche dans tableau » 03-08-2012 11:59:32

Theo17
Réponses : 7

Bonjour,

J'ai 2 tables constitués comme suit (elles sont beaucoup plus importantes mais elles sont réduites ici pour cette demande) :

table des individus
Array (
[4173I] => Array ( [prenom] => Patrick        [nom] => LAPORTE     [ancetres] => 6604U )
[4174I] => Array ( [prenom] => Françoise     [nom] => MORAUD          [ancetres] => )
[4177I] => Array ( [prenom] => Delphine     [nom] => LAPORTE     [ancetres] => 6625U )
[4179I] => Array ( [prenom] => Gaston         [nom] => LAPORTE     [ancetres] => )
[4187I] => Array ( [prenom] => Rolande         [nom] => VINCENT     [ancetres] => )
[5349I] => Array ( [prenom] => Alex         [nom] => PINOT         [ancetres] => 6632U )
[5350I] => Array ( [prenom] => Kévin        [nom] => PINOT         [ancetres] => )
)

table des familles
Array (
[6604U] => Array ( [MARI] => 4179I [FEMME] => 4187I )
[6625U] => Array ( [MARI] => 4173I [FEMME] => 4174I )
[6632U] => Array ( [MARI] => 5350I [FEMME] => 4177I )
)   

Le but est de rechercher les parents de chaque individu grâce au code ancetres de la table individu pour aller chercher dans la table des familles les parents donc le mari et la femme.
Une fois trouvé le mari ou la femme, son code permet de repartir dans la table individu et ainsi de suite.

Donc par exemple en ayant au départ le code 5349I dans la table individu, j'y trouve le code ancetres 6632U qui me donne dans la table des familles le MARI 5350I et la FEMME 4177I.
De là je vais dans la table individus avec le code 4177I qui me donne Delphine LAPORTE avec son code ancetres 6625U et je repars dans la table des familles avec ce code et ainsi de suite.

Faire une boucle pour rechercher serait facile mais mes tables comportent près de 5000 individus, donc très long.
J'ai voulu essayer avec array_search ($key = array_search('6625U', $infos_indi);) qui ne trouve rien et différents autres essais ne me donnent rien, je n'arrive pas à m'en sortir car je pense que çà ne marche pas vu que c'est un tableau à plusieurs dimensions.
J'ai essayé aussi avec des boucles imbriquées, première boucle sur la clé et array_search sur le reste, sans résultat non plus.

Que faut il que j'emploie et de quelle manière pour arriver directemet sur un élément de chaque table ???

Merci beaucoup de vos réponses.
Cordialement.
Théo

#5 Re : Forum Général PHP » Tableau scrollable » 02-03-2012 11:55:39

J'ai trouvé !!!
Une classe dans le thead avec un display:block, les width et height et une classe dans le tbody avec overflow:auto, un display:block et les width et height, puis définition du td avec sa width.
Et çà marche super bien.
Merci à tous.

#6 Re : Forum Général PHP » Tableau scrollable » 02-03-2012 11:55:39

désolé mais je ne l'ai pas vu, comment peux t on le retrouver ? merci

#7 Re : Forum Général PHP » Tableau scrollable » 02-03-2012 11:55:39

Bonjour,
Voilà j'avance mais encore des problèmes :

---
print("<div style=\"width=630px; height=320px;overflow:scroll\">");
print("<table  border><caption>Enregistrements pour $resultat</caption>");
print("<thead><tr>");
       
print("<th style=\"width=70px;\">Commune</th>");
print("<th width=30px>Naissance</th>");
print("<th width=50px>Nom</th>");
print("<th width=50>Prénom</th>");
print("</tr></thead>");
       
print("<tbody style=\"height:300px;\">");
$ligne = 0;
while (list($s_paroisse, $s_date_n, $s_nom, $s_prenom) = mysql_fetch_row($result))
{
   if ($ligne == 0)
   {
      print("<tr>");
      $ligne = 1;
   }
   else
   {
      print("<tr style=\"background: #fff;\">");
      $ligne = 0;
   }
   print("<td style=\"width=70px;\">$s_paroisse</td>");
   print("<td width=30>$s_date_n</td>");
   print("<td width=50>$s_nom</td>");
   print("<td width=50>$s_prenom</td>");
   print("</tr>");
}
print("</tbody></table></div>");
---

J'ai bien mon tableau complet, titre et lignes bien alignés, mais encore ces manques :
Malgré mon width et mon height dans le div de la table, le tableau se cale à gauche avec une largeur correspondante aux plus grands mots des lignes et dépasse l'écran en hauteur.
J'ai sur la droite de l'écran une ligne pour un ascenseur, mais elle est disabled et n'a pas le grand bouton de déplacement malgré mon overflow:scroll
Mon entête n'est pas fixe et remonte quand je déplace les lignes vers le bas avec la roulette de la souris.
Et toujours les largeurs de cellule se calent sur le plus grand mot et non sur mon width qui est pourtant défini.
Je mettrais tous les styles en css quand tout sera au point.
Merci de vos réponses.

#8 Re : Forum Général PHP » Tableau scrollable » 02-03-2012 11:55:39

En fait l'ascenseur y est bien et mon bouton retour aussi, mais le tableau fait la hauteur de toutes les lignes de mon fichier malgré la largeur et la hauteur que j'ai pourtant défini en witdh et height dans <table> et là non plus ce n'est pas pris en compte.

#9 Forum Général PHP » Tableau scrollable » 02-03-2012 11:55:39

Theo17
Réponses : 6

Bonjour,
J'ai un problème avec un tableau.
Je veux un tableau avec l'entête fixe et le corps du tableau qui puisse défiler.
Voilà une partie de mon code concernant ce tableau :

---
{
   print("<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">"); 
   print("<table width=630 height=300 border><caption>Enregistrements pour $resultat</caption>");
   print("<thead><tr>");
       
   print("<th width=70px>Commune</th>");
   print("<th width=30px>Naissance</th>");
   print("<th width=50px>Nom</th>");
   print("<th width=50>Prénom</th>");

   print("</tr></thead>");
       
   print("<tbody><tr><td>");
   print("<div overflow:auto>");
   print("<table>");
       
   $ligne = 0;
   while (list($s_paroisse, $s_date_n, $s_nom, $s_prenom) = mysql_fetch_row($result))
   {
      if ($ligne == 0)
      {
         print("<tr>");
         $ligne = 1;
      }
      else
      {
         print("<tr background: #fff>");
         $ligne = 0;
      }
      print("<td width=70>$s_paroisse</td>");
      print("<td width=30>$s_date_n</td>");
      print("<td width=50>$s_nom</td>");
      print("<td width=50>$s_prenom</td>");
      print("</tr>");
   }
   print("</table></div><br>");
   print("</td></tr></tbody></table>");
   print("<div align=center><input type=submit value=\"Retour\")></div>");
   print('</form>');   
}
---

En sortie j'ai l'entête comme ceci :

----------------------------------------------------------------
|         Commune                  |Naissance|   Nom   |Prénom |
|----------------------------------|                           |
|Paris   01/01/1970  TOTO   Prénom                             |
| .....


J'ai donc la cellule th commune de l'entête qui recouvre les 4 cellules td et sous les cellules th naissance, nom et prénom je n'ai rien.
je n'ai pas d'ascenseur à droite  (malgré mon overflow:auto ou même scroll), mais je peux quand même défiler avec la souris.
Mais en défilant l'entête remonte, elle ne reste pas fixe.
Mes largeurs de cellule s'alignent sur le plus grand mot et non sur ma largeur que j'ai définie.

Donc mes questions, qu'est ce que j'ai fait ou pas fait dans ce code qui ne convient pas ?
Je souhaiterais que les cellules th de l'entête correspondent aux cellules td des lignes du tableau.
Je souhaiterais qu'il y ait un ascenseur sur la droite et que mon entête reste fixe.
Je souhaiterais alterner une ligne sur 2 avec une couleur (pourtant testé et non pris en compte).
Je souhaiterais que les mots composés s'affichent sur une seule ligne (par ex un prénom comme Jean Marie est écrit sur 2 lignes)
Je souhaiterais que les largeurs définies par mes width soient bien prises en compte.
Et de plus le bouton input type=submit value=\"Retour\" de l'avant dernière ligne ne s'affiche pas car le tableau prend tout l'écran.

J'essaie tout un tas de variantes et je n'arrive toujours pas, alors merci beaucoup si vous pouvez me sortir de ce pétrin.

Amicalement.

#10 Re : HTML, xHTML CSS » Effacer l'écran » 07-03-2012 21:20:57

Mes grille et tableau sont dans des fonctions appelées en fonction d'une variable mise à jour par le submit de chacun, mais j'avais fait un appel de fonction de ma grille aussitôt après l'appel de l'appel du tableau et à force de chercher, je ne le voyais plus ... en supprimant cet appel tout marche bien, merci.

Par contre un autre petit problème se pose à moi,

Dans mon tableau j'ai des noms composés séparés par des espaces et il s'affiche autant de lignes que de mots, comment faire pour afficher plusieurs mots à la suite dans une cellule ?
par exemple un Jean Marie s'écrit sur 2 lignes dans ma cellule.
De plus la longueur d'une cellule s'aligne sur la longueur du plus grand mot, malgré un width défini en css, là aussi comment faire pour avoir une cellule à une largeur définie ?

Merci de vos réponses.

#11 Re : HTML, xHTML CSS » Effacer l'écran » 07-03-2012 21:20:57

même en rajoutant un positionnement pour le tableau, j'ai la même chose, quand j'affiche le tableau j'ai toujours ma grille de saisie en superposition, mais quand je clique sur mon bouton retour en bas du tableau, je retrouve ma grille de saisie, seule, sans mon tableau qui lui a été effacé, alors que se passe t-il ????????????????

#12 Re : HTML, xHTML CSS » Effacer l'écran » 07-03-2012 21:20:57

mais si c'est possible, le tableau s'affiche bien, mais ma grille de saisie est affichée par dessus
J'ai un positionnement en css pour la grille de saisie mais pas pour mon tableau

#13 HTML, xHTML CSS » Effacer l'écran » 07-03-2012 21:20:57

Theo17
Réponses : 8

Bonjour,
J'ai un écran de saisie pour renseigner des zones afin d'aller rechercher sur une base Mysql les enregistrements correspondants à ma saisie.
Avec ces enregistrements j'affiche un tableau des enregistrements trouvés, jusque là tout va bien.

Seulement quand j'affiche ce tableau, il se mets en superposition avec ma grille de saisie.

Je voudrais donc que la grille de saisie s'efface pour afficher sur l'écran uniquement mon tableau résultat.
Je précise que ma grille de saisie est dans un <form> et mon tableau dans un autre <form> avec un bouton submit pour retour à la grille de saisie pour une autre recherche.
J'ai essayé de rajouter un ncurses_clear(), mais il me provoque une erreur Call to undefined function (je suis en php 5.3.3 sous Apache).
Par contre l'appui sur le bouton retour du tableau me raffiche bien ma grille de saisie et là le tableau n'est plus à l'écran.
Je précise également que les éléments de ma grile de saisie sont affichés d'aprés une position: absolute en css, peut être la cause ??
Merci de vos réponses.

#15 Re : Forum Général PHP » Choix dans une liste mysql d'un enregistrement sur une popup » 06-01-2012 08:41:08

merci de ta réponse, mais comment incorporer ajax, tu as un exemple qui se rapporterait à mon besoin ?

#16 Forum Général PHP » Choix dans une liste mysql d'un enregistrement sur une popup » 06-01-2012 08:41:08

Theo17
Réponses : 4

Bonjour,
Dans un formulaire, j'aimerais en cliquant sur une zone faire afficher une fenêtre popup qui contiendrait la liste des enregistrements d'une table mysql.
Et en cliquant sur une ligne de cette liste je voudrais récupérer l'enregistrement pour afficher toutes les zones dans mon formulaire.
Est ce possible en php et si oui de quelle manière ?
Merci de vos réponses.

Pied de page des forums

Propulsé par FluxBB