8791 sujets

Développement web côté serveur, CMS

Bonsoir à tous ! Smiley smile


Je rencontre en ce moment un problème auquel je ne trouve pas vraiment de solution...disons surtout que je n'ai pas spécialement envie de charger mon code avec n'importe quoi si il y avait possibilité de faire ça en très simple.

Je m'explique donc :

				for ($i = 1; $i < 7; $i++) {
					if (($ThisBirthday == $ThisWeek[$i]) && ($Champ['group_id'] <= 4)) {
						if ($Groupe != 3) {
							if ($Utilisateur != $Champ['id']) {
								echo("\t\t\t\t\tJ-$i avant l'anniversaire de <a href=\"{$SITE_URL}/membres/profil.php?id={$Champ['id']}\">{$Champ['username']}</a> ($ThisAge ans)<br />\n");
							}
						}
					}
				}


Ce code rapatrie la liste des anniversaires à venir pour les 7 prochains jours et les affiche dans un bloc prévu à cet effet. Le problème étant que je ne sais prévoir combien d'anniversaires sont à venir : si un nouvel utilisateur s'inscrit et que son anniversaire tombe après-demain, il sera automatiquement inséré dans la liste.

Je vous rassure : ce code est fonctionnel ! Le problème étant celui-ci : Le retour à la ligne (<br />). En effet, histoire d'améliorer la présentation au sein du bloc je n'affiche qu'une phrase par ligne. Ces lignes sont ensuite centrées verticalement dans le bloc.

Mais pour le dernier élément créé par la boucle, le retour à la ligne n'est pas indispensable. De fait, les 2-3 phrases créées sont donc décalées vers le haut.

Ma question est donc : existe-t-il un moyen de faire comprendre à ce bout de code qu'il ne faut pas insérer de balise <br /> sur le dernier élément créé par la boucle ? Smiley biggol Smiley biggol
Modifié par SolykZ (18 Sep 2008 - 19:23)
Salut,

Mon idée consiste a mettre la balise <br> au debut de ton echo.
De cette maniere, tu peut faire la meme boucle sauf qu'au debut (donc i = 1 ) tu ne fait aucun <br>.

Sa pourrait donner un bout de code comme celui ci :


for ($i = 1; $i < 7; $i++) 
{
	if (($ThisBirthday == $ThisWeek[$i]) && ($Champ['group_id'] <= 4)) 
	{
		if ($Groupe != 3) 
		{
			if ($Utilisateur != $Champ['id'] && $i != 1) 
			{
				echo("<br />\n \t\t\t\t\tJ-$i avant l'anniversaire de <a href=\"{$SITE_URL}/membres/profil.php?id={$Champ['id']}\">{$Champ['username']}</a> ($ThisAge ans)");
			}
			else
			{
				echo("\t\t\t\t\tJ-$i avant l'anniversaire de <a href=\"{$SITE_URL}/membres/profil.php?id={$Champ['id']}\">{$Champ['username']}</a> ($ThisAge ans)");
			}
		}
	}
}


Voilou Smiley smile Smiley cligne
Ah, je ne voyais pas les choses comme ceci, mais au final ça fonctionne alors je ne compte pas me plaindre !! Smiley lol


Je te remercie pour ton aide ! Smiley smile
En plus, c'est terriblement simple...je vais finir par croire que coder nuit aux synapses. :-P
C'était pour faire au plus simple, mais sinon tu pouvais stoker tout les élément dans un tableau. Ensuite avoir la taille utile du tableau puis refaire une boucle et comme la tu connais pas taille tu tableau, tu sais quand tu arrive au dernier élément pour ne pas faire de <br>.

Mais bon c'est plus lourd et moin efficace je pense, surtout si tu a une base de donnée assez lourde !
Ouais en fait j'avais imaginé cette solution-là mais ça me semblait plutôt casse-tête. Smiley smile

Ta solution m'a fort bien aidé en tout cas ! Un tout grand merci à toi ! Smiley smile