France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
22 749 membres enregistrés - 1 888 028 posts - 96 578 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Langages Web
                [PHP] Erreur dans une boucle
34 connectés(record : 207 le 05 juin 2007 - 05 h 23)

Vous devez vous connecter pour répondre au topic.
[PHP] Erreur dans une boucle

KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!

Messages : 1 715
Inscrit le 22/02/02
Ville : Chassagny
Non connecté
  Posté le 19 mai 2004 - 11 h 55 m 03 s
Voilà, j'ai crée une boucle pour l'enregistrement d'une date dans la BDD :

$Tjour = array();
$TMois = array();
$TAnnee = array();

for ($cptJour=0; $cptJour<=31; $cptJour++)
{
if ($cptJour < 10)
{
$TJour[$cptJour] = "0" . $cptJour+1;
}
else
{
$TJour[$cptJour] = $cptJour+1;
}
}

Et voici le message d'erreur : Notice: Undefined offset: 0 in c:\_poncetg_\_site_college_stadc_\FormInternaute.php on line 43



KibitO Piccoloo Porto

Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)

!! DefraK !!


dready
Modérateur
(¯¯`·.____[T3aM.R3cLu5]____.·´¯¯¯) (¯`·.__[T3aM.77]__.·´¯)

Messages : 8 920
Inscrit le 17/09/02
Ville : la montagne ;)
Non connecté
  Posté le 19 mai 2004 - 12 h 05 m 55 s


Le 19 mai 2004 à 11 h 55, KibitO a écrit :
Voilà, j'ai crée une boucle pour l'enregistrement d'une date dans la BDD :

$Tjour = array();
$TMois = array();
$TAnnee = array();

for ($cptJour=0; $cptJour<=31; $cptJour++)
{
if ($cptJour < 10)
{
$TJour[$cptJour] = "0" . $cptJour+1;
}
else
{
$TJour[$cptJour] = $cptJour+1;
}
}

Et voici le message d'erreur : Notice: Undefined offset: 0 in c:\_poncetg_\_site_college_stadc_\FormInternaute.php on line 43

je dirais que le souci vient que T jour= 0 n est pas défini .. mais bon ca fait pas avancer le schmilblik :chepa:


enfin moi ske j en dis hein :D



il y a 3 grands mensonges en informatique
ça marche, c'est compatible et ça sort bientôt ^^


KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!

Messages : 1 715
Inscrit le 22/02/02
Ville : Chassagny
Non connecté
  Posté le 19 mai 2004 - 12 h 12 m 26 s
Jpense que ça vient du contenu de $Tjour[], il a des valeurs à la fois de type chaine et de type entier... pourtant en PHP, les tableaux sont libres dans leur contenu...



KibitO Piccoloo Porto

Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)

!! DefraK !!


DeVice
Boulet occasionel...

Messages : 3 022
Inscrit le 12/03/03
Ville : Grenoble
Non connecté
  Posté le 19 mai 2004 - 12 h 54 m 08 s
Et c'est laquelle la ligne 43 ?



Règle N°1 du forumeur : "Ta souris 7 fois autour du bouton poster tu tourneras, ainsi moins pour un âne de passer tu risqueras"

TorTue
"Je sais que je ne sais rien."

Messages : 2 137
Inscrit le 21/05/02
Ville : Saint Martin en Haut (69)
Non connecté
  Posté le 19 mai 2004 - 14 h 39 m 52 s


Le 19 mai 2004 à 12 h 54, DeVice a écrit :
Et c'est laquelle la ligne 43 ?


:Plus1:

:cutter:



http://www.les5elements.com/

KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!

Messages : 1 715
Inscrit le 22/02/02
Ville : Chassagny
Non connecté
  Posté le 23 mai 2004 - 11 h 51 m 21 s
Dsl les gars là gt en w-e de 4 jours. Je vous donne la partie du code qui nous interesse demain dans la journée.



KibitO Piccoloo Porto

Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)

!! DefraK !!


kro
retour aux sources

Messages : 4 300
Inscrit le 02/03/02
Ville : Villeurbanne/Grenoble
Non connecté
  Posté le 23 mai 2004 - 12 h 32 m 40 s
y'a un petit pbm de Casse aussi TJour et Tjour



A vaincre sans péril on triomphe sans gloire

KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!

Messages : 1 715
Inscrit le 22/02/02
Ville : Chassagny
Non connecté
  Posté le 24 mai 2004 - 08 h 48 m 28 s
Exact je viens de rectifier ça. Je vais voir si ça venait bien de là car je vais tester en ligne là.



KibitO Piccoloo Porto

Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)

!! DefraK !!


KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!

Messages : 1 715
Inscrit le 22/02/02
Ville : Chassagny
Non connecté
  Posté le 24 mai 2004 - 10 h 53 m 59 s
Bon à présent c'est ma fonction de liste déroulante qui me pose problème.
En gros, une fois les tableaux des jours, mois, année passés à la fonction champListe, le programme qui les récupère les récupère tres mal puisque d'une part, si on ne selectionne aucune valeur des trois listes, il affiche 0/0/0 et d'autre part, si on sélectionne un jour, un mois et une année, il affiche J-1/M-1/42 !! :(

    Code     
 1. function champSelect($pNom, $pListe, $pDefaut, $pTaille=1)
 2. 	{
 3. 		$s = "<SELECT NAME='$pNom' SIZE='$pTaille'>n";
 4. 		while (list($val, $libelle) = each($pListe))
 5. 		{
 6. 			if ($val != $pDefaut)
 7. 			{
 8. 				$s .= "<OPTION VALUE='$val'>$libelle</OPTION>n";				
 9. 			}
10. 			else
11. 			{
12. 				$s .= "<OPTION VALUE='$val' SELECTED>$libelle</OPTION>n";
13. 			}
14. 		}
15. 		return ($s . "</SELECT>n");
16. 	}
17. 
Voici une partie du programme appelant la fonction :
    Code     
 1. 
 2. $form = new Formulaire ("POST", "AccesInter.php");
 3. 
 4. // Boucles traitant les jours, mois et années
 5. 		
 6. 		$TJour = array();
 7. 		$TMois = array();
 8. 		$TAnnee = array();
 9. 		
10. 		for ($cptJour=1; $cptJour<=31; $cptJour++)
11. 		{
12. 			if ($cptJour < 10)
13. 			{
14. 				$TJour[$cptJour-1] = "0" . $cptJour;				
15. 			}
16. 			else
17. 			{
18. 				$TJour[$cptJour-1] = $cptJour;
19. 			}		
20. 		}
21. 				
22. 		for ($cptMois=1; $cptMois<=12; $cptMois++)
23. 		{
24. 			if ($cptMois < 10)
25. 			{
26. 				$TMois[$cptMois-1] = "0" . $cptMois;									
27. 			}
28. 			else
29. 			{
30. 				$TMois[$cptMois-1] = $cptMois;
31. 			}		
32. 		}
33. 		
34. 		$AnneeSys = date("Y");
35. 		
36. 		$cptA = 0;
37. 		for ($cptAnnee=1940; $cptAnnee<=($AnneeSys-10); $cptAnnee++)
38. 		{
39. 			$TAnnee[$cptA] = $cptAnnee;
40. 			$cptA++;
41. 		}
42. 
43. $form->champListe("Jour de naissance", "jourNaiss", $TJour, 1, $TJour);
44. 		$form->champListe("Mois de naissance", "moisNaiss", $TMois, 1, $TMois);
45. 		$form->champListe("Année de naissance", "anneeNaiss", $TAnnee, 1, $TAnnee);
46. 
Et enfin voici les fonctions champListe et champLibelle
    Code     
1. function champListe ($pLibelle, $pNom, $pVal, $pTaille, $pListe)
2.    	{
3.      		$this->champLibelle ($pLibelle, $pNom, $pVal, "SELECT", array("SIZE"=>$pTaille), $pListe);
4.    	}
    Code     
 1. // Affichage d'un champ et de son libelle
 2. 	function champLibelle($pLibelle, $pNom, $pVal, $pType="TEXT", $params=array(), $pListe=array())
 3. 	{
 4. 		// Création du champ
 5. 		$champHTML = $this->champForm($pType, $pNom, $pVal, $params, $pListe);
 6. 		
 7. 		// Affichage du champ en tenant compte de la présentation
 8. 		if ($this->modeTable)
 9. 		{
10. 			if ($this->orientation == "VERTICAL")
11. 			{
12. 				// Nouvelle ligne, avec libelle et champ dans deux cellules
13. 				TblDebutLigne();
14. 				TblCellule("<B>" . $pLibelle . "</B>");
15. 				TblCellule($champHTML);
16. 				TblFinLigne();
17. 			}
18. 			else
19. 			{
20. 				// On ne peut pas afficher maintenant, on stocke dans les tableaux
21. 				$this->entetes[$this->nbChamps] = "<B>" . $pLibelle . "</B>";
22. 				$this->champs[$this->nbChamps] = $champHTML;
23. 				$this->nbChamps++;
24. 			}
25. 		}
26. 		else
27. 		{
28. 			// Affichage simple
29. 			echo "$pLibelle";
30. 			echo "$champHTML";
31. 		}
32. 	}


Message édité 1 fois, la dernière par KibitO le 24 mai 2004 - 10 h 56.

KibitO Piccoloo Porto

Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)

!! DefraK !!


KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!

Messages : 1 715
Inscrit le 22/02/02
Ville : Chassagny
Non connecté
  Posté le 24 mai 2004 - 11 h 47 m 28 s
Personne pour m'aider ? Plz j'en ai vraiment besoin, sans ça je ne peux avancer dans mon programme.



KibitO Piccoloo Porto

Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)

!! DefraK !!


alitokmen
Think ®

Messages : 3 687
Inscrit le 19/09/02
Ville : Grenoble, France || Ankara, Turquie
Non connecté
  Posté le 25 mai 2004 - 06 h 51 m 38 s
$TJour[$cptJour] = "0" . $cptJour+1;

c'est faux... il faut écrire

$TJour[$cptJour] = "0" . ($cptJour+1);



S. Ali Tokmen
http://ali.tokmen.com
http://contact.ali.tokmen.com


KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!

Messages : 1 715
Inscrit le 22/02/02
Ville : Chassagny
Non connecté
  Posté le 25 mai 2004 - 09 h 05 m 41 s
rah exact, le probleme de concaténation... en fait il n'interprete pas le "+" comme un "+" arithmétique..

Sinon j'avais changé avant (vu que je voyais ke ça ne marchais pas..) en détournant le probleme :D :

    Code     
 1. // Boucles traitant les jours, mois et années
 2. 		
 3. 		$TJour = array();
 4. 		$TMois = array();
 5. 		$TAnnee = array();
 6. 		
 7. 		for ($cptJour=1; $cptJour<=31; $cptJour++)
 8. 		{
 9. 			if ($cptJour < 10)
10. 			{
11. 				$TJour[$cptJour-1] = "0" . $cptJour;				
12. 			}
13. 			else
14. 			{
15. 				$TJour[$cptJour-1] = $cptJour;
16. 			}		
17. 		}
18. 				
19. 		for ($cptMois=1; $cptMois<=12; $cptMois++)
20. 		{
21. 			if ($cptMois < 10)
22. 			{
23. 				$TMois[$cptMois-1] = "0" . $cptMois;									
24. 			}
25. 			else
26. 			{
27. 				$TMois[$cptMois-1] = $cptMois;
28. 			}		
29. 		}
30. 		
31. 		$AnneeSys = date("Y");
32. 		
33. 		$cptA = 0;
34. 		for ($cptAnnee=1940; $cptAnnee<=($AnneeSys-10); $cptAnnee++)
35. 		{
36. 			$TAnnee[$cptA] = $cptAnnee;
37. 			$cptA++;
38. 		}


Sinon pour le reste, vous touvez quelque chose qui cloche ? J'arrive pas a m'en sortir avec ces listes :si:


Message édité 2 fois, la dernière par KibitO le 25 mai 2004 - 09 h 29.

KibitO Piccoloo Porto

Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)

!! DefraK !!


Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 25 mai 2004 - 13 h 37 m 39 s
juste un petit truc :

au lieu de

    Code     
1. if ($cptJour < 10)
2. {
3.     $TJour[$cptJour-1] = "0" . $cptJour;                
4. }
5. else
6. {
7.     $TJour[$cptJour-1] = $cptJour;
8. }
fait tout simplement :
    Code     
1. $TJour[$cptJour-1] = sprintf("%02.0d",$cptJour);



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 25 mai 2004 - 13 h 45 m 57 s
et pour faire encore plus rapide :

    Code     
 1. 
 2. function formatSurDeuxChiffres($param)
 3. {
 4.     return  sprintf("%02.0d",$param);
 5. }
 6. 
 7. $TJour = array_map('formatSurDeuxChiffres',range(1,31));
 8. $TMois = array_map('formatSurDeuxChiffres',range(1,12));
 9. $TAnnee = range(1940,date("Y"));
10. 


Message édité 1 fois, la dernière par Erel69 le 25 mai 2004 - 13 h 46.

Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!

Messages : 1 715
Inscrit le 22/02/02
Ville : Chassagny
Non connecté
  Posté le 25 mai 2004 - 13 h 54 m 06 s
ah oui la fameuse fonction range(). Je n'y avais pas pensé.
Nan mais sinon j'ai un problème lors du passages des paramètres à la fonction champListe... Les valeurs récupérées apres apuie sur le bouton de validation ne sont pas correctes puisque j'obtiens la date sous la forme J-1/M-1/42 si je sélectionne J/M/1982 :(



KibitO Piccoloo Porto

Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)

!! DefraK !!


Page genérée en 0.9184 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory