Executer une fonction dans une boucle

mouness Messages postés 97 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 30 octobre 2007 - 14 sept. 2006 à 13:46
mouness Messages postés 97 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 30 octobre 2007 - 18 sept. 2006 à 09:55
Bonjour SVP si quelqu'un peut m'aider je m'explique j'ai une fonction genre ci-dessous

function affiche_tableau_visite_lundi($test)
{
 for ($i = 0; $i < 21; $i++)
 {
  $affiche_tab .= "<?php echo affiche_visite($heure_debutL[$i],$heure_finL[$i],$piloteL[$i],$nomL[$i],"formL"."$i",$Lundi);?>";
  $affiche_tab .= "<?php echo affiche_bouton($nomL[$i],$Lundi);?>";
 }
 return  $affiche_tab;
}

et je veu qu'elle execute deux autre fonction en boucle un certain nombre de fois genre ci-dessous

function affiche_visite($heur_deb_vis,$heur_fin_vis,$pilote_vis,$nom_vis,$nom_form,$dateVisite)
{
 $liendb = mysql_connect("localhost","mouness","");
 mysql_select_db("test");
 $query_valide_visite="SELECT valide FROM visite WHERE nom="$nom_vis" AND pilote="$pilote_vis"";
 $result_valide= mysql_query($query_valide_visite);
 $ligne = mysql_fetch_assoc($result_valide);
 $valide   =$ligne["valide"];
 mysql_close($liendb);
 if ($valide=="1")
 {
  $couleur = "#99FF99";
  $nbr_colonne="colspan="2"";
 }
 else
 {
  $couleur = "#CCFFCC";
  $nbr_colonne="";
 }
 $heur_deb_vis = extrac_heure($heur_deb_vis);
 $heur_fin_vis = extrac_heure($heur_fin_vis);
   $visite = "<tr><form action="Annexe.php" target="annexe" method="post" name="$nom_form">".
      "<td onClick="javascript:window.document.$nom_form.submit();" width="10%" bgcolor=$couleur nowrap>$heur_deb_vis</td>".
      "<td onClick="javascript:window.document.$nom_form.submit();" width="10%" bgcolor=$couleur nowrap>$heur_fin_vis</td>".
    "<td onClick="javascript:window.document.$nom_form.submit();" width="10%" bgcolor=$couleur nowrap>$pilote_vis</td>".
    "<td onClick="javascript:window.document.$nom_form.submit();" width="64%" bgcolor=$couleur nowrap $nbr_colonne>$nom_vis</td>".
    "</form>";
 if($nom_vis!=null)
 {
  return $visite;
 }
 else
  return false;
}
et puis

function affiche_bouton($affiche,$dateV)
{
 $liendb     = mysql_connect("localhost","mouness","");
 mysql_select_db   ("test");
 $query_valide_visite ="SELECT valide FROM visite WHERE nom="$affiche"";
 $result_valide   = mysql_query($query_valide_visite);
 $ligne      = mysql_fetch_assoc($result_valide);
 $valide     =$ligne["valide"];
 mysql_close    ($liendb);
 
 if ($valide=="1")
 {


  $bouton = "<td width="2%" bgcolor=#99FF99 nowrap></td>".
     "<td width="2%" bgcolor=#99FF99 nowrap></td></tr>";
 }
 else
 {
  $bouton = "<td width="2%" bgcolor=#CCFFCC nowrap></td>".
     "<td width="2%" bgcolor=#CCFFCC nowrap></td>".
     "<td width="2%" bgcolor=#CCFFCC nowrap></td></tr>";
 }
 if($affiche!=null)
 {
  return $bouton;
 }
 else
  {return false;}


}
les variable $heure_debutL[$i],$heure_finL[$i],$piloteL[$i],$nomL[$i] sont obtenu depuis la base de donnée et comme vous avez sans doute pu le remarquer ces deux fonction sont cencée afficher un les ligne d'un tableau elle fonctionne ce que je voudrais savoir c'est comment modifier la fonction affiche_tableau_visite_lundi afin d'afficher ces ligne , je debute et j'ai deja essayer plusieur maniere pour ecrire cette fonction rien n'y fait aider moi s'il vous plait merci a tout ce qui voudront bien me repondre

10 réponses

mouness Messages postés 97 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 30 octobre 2007
14 sept. 2006 à 13:53
et j'oublier j'appelle ma fonction comme ca <?php echo affiche_tableau_visite_lundi() ;?> (y'a pas de var $test erreur de saisie desoler) merci
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 sept. 2006 à 15:59
Hello,

ça fait beaucoup de "<?php", tu ne trouves pas...?
0
mouness Messages postés 97 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 30 octobre 2007
14 sept. 2006 à 16:58
y'en a dans la fonction affiche_tableau_visite_lundi() et dans ma page ou j'affiche les ligne (<?php echo affiche_tableau_visite_lundi() ;?>) qoi ca fait 3 en tout t'a une soluce a proposer
merci pour la remarque
0
mouness Messages postés 97 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 30 octobre 2007
14 sept. 2006 à 17:05
c'est sur une foi la boucle effectuer ca fait beaucoup mais bon toi qui est si malin commen je fait dans ce cas il faut bien que je les affiche sur ma page c'est ca ou je les ecrit a la main un par un en incrementant $i de 1 a chaque fois ce qui fait bien plus de code encore mais merci encore pour la remarque
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
15 sept. 2006 à 20:05
Je crois pas que ce soit la facon de parler a quelqu'un qui t'aides (je sais j'ai fait la meme erreur  encore desole malalam ).

Pour ton code, j'ai pas compris pourquoi tu utilise des balises <?php a l'interieur d'un d'une variables php destine a l'affichage. Il y a la recursivite qui me semblerait au top si tu veux pouvoir executer une fonction plusieurs fois d'affile avec des params differents... ou meme eval() qui permet de creer des fonctions dynamiquement a partir d'une variable en php. Enter les while(), les for() et autre foreach(), tu n'as que l'embarras du choix ^^. Tu peut egalement penser au template (en version beaucoup moins evolue que les templates de base) genre charger une page html qui te servirai de modele avec des variables a modifier suivant les resultats de recherche de ta BDD. En gros faudrait reprendre la structure de ton prog pour pouvoir simplifier les traitements.

A mediter egalement, l'optimisation du code, c-a-d l'utilisation de simple quote ' a la place des doubles quotes " qui accelere d'avantage le traitement de ton code. A ne pas pas oublier : php est un language interprete, pas compile ce qui implique un traitement plus long avant d'atteindre le processeur de ta machine.

@++
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
15 sept. 2006 à 21:11
"Je crois pas que ce soit la facon de parler a quelqu'un qui t'aides (je sais j'ai fait la meme erreur encore desole malalam )."
Rien que pour ca, ca me donne pas envie de répondre m'enfin bon.

"ou meme eval() qui permet de creer des fonctions dynamiquement a partir d'une variable en php." eval() c'est un peu le passe partout... create_function() pour ca :) C'est plus propre et plus efficace !


Pour en revenir au sujet... jcapte rien à son code. Les fonctions de connections à la base de données dans la fonction c'est moche.

M'enfin c'est pareil, j'arrive pas à lire quand même... suis dsl !
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 sept. 2006 à 22:23
Mouness => j'étais au boulot, et du boulot, j'en avais! J'ai du mal à suivre en ce moment avec phpcs et mon boulot. Alors j'ai vu ton post, j'ai lu, j'ai rien pigé à ton code, mais j'ai vu un truc carrément cheloux : <?php echo '<?php...?>'; ?>...alors, avec le peu de temps que j'avais, j'ai essayé de t'aiguiller.
Tu le prends mal, tant pis; honnêtement, je m'en fous. Là j'ai du temps, j'ai relu, et je peux te dire ceci : avant de coder en PHP, il faut apprendre le PHP. Il y a trop d'incohérences pour corriger, il faut revoir les bases. Et j'irai pas plus loin parce que, comme jean et FhX, je ne pige que dalle à ton code. Et je ne pense pas que ce soit un problème de niveau...

Jean84 => ;-)

FhX => t'es nul, c pour ça que t'as rien pigé ;-)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 sept. 2006 à 22:27
En même temps, Mouness, je suis désolé de te répondre comme je viens de le faire. Mais voilà, en ce moment faut pas me chercher ;-) J'ai pas que ça à faire.
je vais quand même te ré-aiguiller: ton code est incohérent! T'as pas à répêter <?php bla bla dans un echo! Ca ne rime à rien.
C'est comme si, dans un bouquin, un auteur écrivait :
Et François s'exclama :
"j'ai rencontré Pierre-Edouardn et il a dit : "Hé, François, tu sais pas ce que m'a sorti Ludwig ? "Je m'embrouille grave avec tous ces guillemets!"""
...
0
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
16 sept. 2006 à 15:48
Fhx & Malalam = > lol, je pensais que c'etait moi qui etait fatigue car je comprenais que dalle au code ... sa fait plaisir ^^
En meme temps je pense que la presentation du site y est pour beaucoup car sans couleur et sans alinea, bah c'est un beau bordel (je suis un adepte de l'editeur de code de dreamweaver )

Fhx => "Rien que pour ca, ca me donne pas envie de répondre m'enfin bon."
J'ai dit quelque chose de mal ??

"


eval() c'est un peu le passe partout... create_function() pour ca :) C'est plus propre et plus efficace !"

J'en avais deja entendu parler mais j'avais pas trop saisie le sens. Tu aurais un exemple de code (simple de preference ) a me fournir ?? Merci





Mouness => peut tu indiquer le but de ton code ? Peut etre pourrat-on t'indiquer la marche a suivre pour resoudre ton probleme ??

@++ tout le monde
0
mouness Messages postés 97 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 30 octobre 2007
18 sept. 2006 à 09:55
bonjour tout d'abord excuse moi de t'avoir parler si brutalement malalam je m'en exuse et je vous remercie a tous de malgré ca avoir prit la penne de bien vouloir m'aider mais ce jour j'été un peu sur les nerf et je n'avait aucune raison de m'en prendre a toi  malalam qoiqu'il en soit j'ai resolue mon probleme qui venait de la perte des valeur de mes variable et puis en meme temps certain trouve peut etre ca moche mais j'ai non seulement pas mis la totalité du code de cette page qui est un petit peu longue ce qui n'aide pas a la comprehension mais en plus le php ca fait 2 mois que j'en fait donc par raport a certaine chose que je vois ici  je trouve que je m'en sort pas trop mal quoiqu'il en soit merci a tous et excuse mois encore malalam
0
Rejoignez-nous