Problème de boucle et conditions en PHP/MySQL

Résolu/Fermé
Utilisateur anonyme - 21 janv. 2009 à 20:32
 Utilisateur anonyme - 21 janv. 2009 à 21:06
Bonjour à tous ! Je vous expose mon problème :

Je fais un petit journal sur mon site, j'ai des articles qui sont dans une base de données et pour chaque article, il y a un lien vers celui-ci dans un menu déroulant en CSS.
Pour le moment, j'affiche les articles du menu déroulant en HTML et j'aimerais automatisé cela.
Je pense avoir trouvé la solution mais le problème c'est que j'ai des conditions dans ma boucle qui doit afficher ces articles et j'ai l'impression que ces conditions sont mal interprétées.
Je connais le nombre d'articles, le nombre de pages nécessaires pour tous les afficher, le nombre d'article par pages et le numéro de la page affichée.

Voici mon code:
                        $a = 1; //Numéro de page (pas celle affichée)
			$incr = 0; //Variable d'incrémentation
			while($row = mysql_fetch_assoc($sql)) //Tant qu'on a des articles
			{
				$id = $row['id'];
				$nom = $row['nom'];
				if($incr = $nombreDeMessagesParPage){$a++;$incr=0;}  
				if($a = $p) echo "<li><a href=\"#$id\">$nom</a></li>";
				else echo "<li><a href=\"?p=$a#$id\">$nom</a></li>";
				$incr++;
			}
                       

Les conditions sont interprétées comme si le code été:
$incr = $nombreDeMessagesParPage;
et
$a= $p;

Pourtant je suis sûr qu'il n'y a aucune erreur dans ces conditions.

J'espère avoir été assez clair.
J'aimerais savoir pourquoi ce code ne fonctionne pas et comment faire pour qu'il fonctionne.
Merci d'avance.
A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 janv. 2009 à 20:46
sans rentrer dans le détail du code je vois déja deux erreurs


....
if($incr = $nombreDeMessagesParPage){$a++;$incr=0;}
if($a = $p)....


pour un test dégalité il faut == et pas =
0
Utilisateur anonyme
21 janv. 2009 à 21:06
Au mais oui que suis-je bête ! Merci ! Les conditions fonctionnent. A partir de maintenant je vais bien mettre 2 "==" et non pas juste "=" ^^.
0