Bonjour,

J'ai un petit problème avec une boucle while. (en fait c'est pas un problème... Vous verrez)

Voilà ma boucle:

while ($message = ObjetSuivant ($resultat))
	{
		$id = $message->id;

		echo "<h2>» $message->titre, Da $message->auteur il $message->date</h2>\n";
		echo "<p>".str_replace("\n", '<br />', $message->texte)."</p>\n";
		echo "<hr />\n";
	}


Comme vous pouvez le voir pour séparer mes articles de news, j'ai mis un <hr />. Mon problème, c'est que j'aimerais pas qu'il se mette en fin de boucle, c'est à dire après la dernière news. Est-ce que il y a une solution au problème???

Merci d'avance.
Modifié par le rouge (23 Mar 2006 - 17:26)
Salut

Récupère le nombre de news à afficher, ajoute un compteur et mets un if : si le compteur a atteint le nombre de news à afficher, pas de <hr />, sinon <hr /> ... par exemple.
Alors j'a testé toute sorte de chose...

Mon code est le suivant mnt.

function Affichage ($connexion)
{
	$resultat = Requete ("SELECT * FROM agenda Order by date_class", $connexion);	

	while ($message = ObjetSuivant ($resultat))
	{
		$id = $message->id;

		echo "<h2>» $message->date <span>(Da $message->auteur)</span></h2>\n";
		echo "<p>".str_replace("\n", '<br />', $message->texte)."</p>\n";
		if($id <= 5)
		{
			echo "<hr />\n";
		}
		else
		{
			echo "\n";
		}
	}
}


if($id <= 5)

Mais cette ligne pose problème, il faudrait à la place du 5 une variable qui dit "le chiffre de la dernière news..." QQn a une idée?
Hello.
J'utilise la fonction
$select = 'SELECT count(id) FROM news';


Il y a des infos ici ou encore la.

Ensuite, une fois que tu as le nombre, tu retranches 1, et tu as le compteur de la boucle while.

Ensuite tu pourras par exemple, ne faire afficher que 10 news par page, mais c'est une autre histoire ! Smiley biggrin
Modifié par carobee (23 Mar 2006 - 16:56)
ça fonctionne pas... J'ai ça:

function Affichage ($connexion)
{
	$resultat = Requete ("SELECT * FROM pianidistudio Order by id DESC", $connexion);
	$select = 'SELECT count(id) FROM pianidistudio;';

	while ($message = ObjetSuivant ($resultat))
	{
		$id = $message->id;

		echo "<li>Inviato il $message->date da $message->auteur :</li>\n";
		echo "<li>» <a href='$message->url'>$message->titre</a></li>\n";
		if($id > $select-1)
		{
			echo "<br />\n";
		}
		else
		{
			echo "\n";
		}
	}
}


Et j'ai aussi testé ça:

function Affichage ($connexion)
{
	$resultat = Requete ("SELECT * FROM notizie Order by id Desc", $connexion);
	//On récupère le nombre de id
	$requete = mysql_query("select * from notizie");
    $nb = mysql_num_rows($requete);

	while ($message = ObjetSuivant ($resultat))
	{
		$id = $message->id;

		echo "<h2>» $message->titre, Da $message->auteur il $message->date</h2>\n";
		echo "<p>".str_replace("\n", '<br />', $message->texte)."</p>\n";
		if($id < $nb)
		{
			echo "<hr />\n";
		}
		else
		{
			echo "\n";
		}
	}
}


Je sais pas qu'elle est la meilleure solution et ce qui cloche dans mon premier exemple...
j'ai résolu mon problème, c'est bon...

Comme cela:

si c'est "order by id DESC :

function Affichage ($connexion)
{
	$resultat = Requete ("SELECT * FROM notizie Order by id Desc", $connexion);

	while ($message = ObjetSuivant ($resultat))
	{
		$id = $message->id;

		echo "<h2>» $message->titre, Da $message->auteur il $message->date</h2>\n";
		echo "<p>".str_replace("\n", '<br />', $message->texte)."</p>\n";
		if($id == 1)
		{
			echo "\n";
		}
		else
		{
			echo "<li><hr />\n</li>";
		}
	}
}


Si c'est order by id :

function Affichage ($connexion)
{
	$resultat = Requete ("SELECT * FROM docenti Order by id", $connexion);
	//On récupère le nombre de id
	$requete = mysql_query("select * from docenti");
    $nb = mysql_num_rows($requete);

	while ($message = ObjetSuivant ($resultat))
	{
		$id = $message->id;

		echo "<p>".str_replace("\n", '<br />', $message->texte)."</p>\n";
		if($id < $nb)
		{
			echo "<hr />\n";
		}
		else
		{
			echo "\n";
		}
	}
}


Et enfin si c'est order by date_class :

function Affichage ($connexion)
{
	$resultat = Requete ("SELECT * FROM agenda Order by date_class", $connexion);
	//On récupère le nombre de id
	$requete = mysql_query("select * from agenda");
    $nb = mysql_num_rows($requete);

	while ($message = ObjetSuivant ($resultat))
	{
		$id = $message->id;

		echo "<h2>» $message->date <span>(Da $message->auteur)</span></h2>\n";
		echo "<p>".str_replace("\n", '<br />', $message->texte)."</p>\n";
		if($id < $nb)
		{
			echo "<hr />\n";
		}
		else
		{
			echo "\n";
		}
	}
}


Voilà.

Est-ce que ça se fait??? Et que c'est la solution la plus simple?