Probleme de classe

Eléphant du PHP | 450 Messages

31 mai 2007, 19:33

Bonjour j'ai creer une classe pour afficher un tableau , mais la fonction afficher_tableau me provoque un probleme (boucle infinie) et me remplie pas le tableau comme nécéssaire
Warning: Invalid argument supplied for foreach() in c:\program files\easyphp1-8\www\auto-gestion\calendar.class.php on line 50
voici le script sur la page principale:
$selectinv = "Select * from heure_conduite  WHERE Date >='$lundi2' and date <='$dimanche2' group by date";
$resultinv = mysql_query($selectinv,$link)  or die ('Erreur 1: '.mysql_error() );


while ($voir = mysql_fetch_assoc($resultinv))
	{	
	$date=$voir['date'];
	$heure=$voir['heure'];
	$evenement= $voir['identifiant'];
	
	$calendar = new calendar();
	$calendar->ajout_evenement ($date,$heure,$evenement);
	
	$calendar->afficher_tableau ($lundi2);
et voici la fonction ajout evenement et afficher tableau
function ajout_evenement ($i,$h,$j) 
	{
	if (isset ($t[$i]))
		{
		if (isset ($t[$i][$h]))
			$t[$i][$h][]=$j;
		else 
			$t[$i][$h]= array(0=>$j);
		}
	else 
	$t[$i]= array($h=>array(0=>$j));
	}

function afficher_tableau($i)   //i premier jour
	{
	echo "<table border=1 ><TR bgcolor='rgb(100,135,220)'>
		<TH >Heure</TH>
		<TH >Lundi</TH>
		<TH >Mardi</TH>
		<TH >Mercredi</TH>
		<TH >Jeudi</TH>
		<TH >Vendredi</TH>
		<TH >Samedi</TH>
		<TH >Dimanche</TH>
		</TR> ";
	for ($h = 8;$h <=18 ; $h++) 
	{
		echo "<tr><td>$h</td><td>";
	for ($i2=$i; $i2 <= $i+7 ;$i++)
		{
		if (isset ( $t[$i2]) && isset ( $t[$i2][$h]))
		echo "<ol>";
		$o=0;
		foreach ($t[$i][$h] as $vt)
		{
		echo "<li>'$vt'" ;
		$o++;
		if ($o<3)
		echo "<a href ='tata.php' >cliquez pour ajouter evenement</a>";
		}
		echo "</ol></td><tr>";
		}
	}
	
}
Si quelqun a une idée de la provenance de cette boucle infinis merci de me faire signe
ps: la ligne 50 est celle du foreach
Alone in the dark , I smile :D

Eléphant du PHP | 451 Messages

31 mai 2007, 20:05

Bonsoir,

dans la boucle :
   for ($i2=$i; $i2 <= $i+7 ;$i++)
ne serais-ce pas $i2++ au lieu de $i++ qu'il faut faire ?
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphant du PHP | 450 Messages

31 mai 2007, 20:14

si si tu a raison jpaul :)
j'ai corrigé

J'ai modifier mon code est j'ai une nouvel erreur:
Fatal error: Maximum execution time of 30 seconds exceeded in c:\program files\easyphp1-8\www\auto-gestion\calendar.class.php on line 45
voici le nouveau code de la fonction afficher tableau :
function afficher_tableau($i)   //i premier jour
	{
	echo "<table border=1 ><TR bgcolor='rgb(100,135,220)'>
		<TH >Heure</TH>
		<TH >Lundi</TH>
		<TH >Mardi</TH>
		<TH >Mercredi</TH>
		<TH >Jeudi</TH>
		<TH >Vendredi</TH>
		<TH >Samedi</TH>
		<TH >Dimanche</TH>
		</TR> ";
	for ($h = 8;$h <=18 ; $h++) 
	{
		echo "<tr><td>$h</td>";
	for ($i2=$i; $i2 <= $i+7 ;$i2++)
		{
		if (isset ($t[$i2]) && isset ($t[$i2][$h]))
		{

		echo "<td><ol>";
		$o=0;
		foreach ($t[$i2][$h] as $vt)
		{
		echo "<li>'$vt'" ;
		$o++;
		}
		if ($o<=2)
		echo "<a href ='tata.php' >cliquez pour ajouter evenement</a>";
		echo "</ol></td></tr>";
		}
		}
		print_r ($t);
		echo $i2;
		echo $h;
	}
	echo "</table>";
}
Alone in the dark , I smile :D

Eléphant du PHP | 451 Messages

31 mai 2007, 22:42

C'est quoi la ligne 45 du fichier calendar.class.php, le bout de code ne fait que 38 lignes...
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)