Requete casse tete

Résolu
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   -  
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'essaie de faire en sorte d'afficher un tableau avec les résultats d'une requête de sorte qu'un ligne sur deux soit différente (style a et style b), indépendemment de l'ID (pour pouvoir changer l'order by par la suite)...

voici le code :

	echo '<table class="categories" cellspacing="0">';

	
	$reponse = mysql_query ("SELECT * FROM categories ORDER BY id_categorie") or die ("erreur :".mysql_error());
	$max = mysql_query("SELECT MAX(id_categorie) FROM categories");
		
	while ($maxi = mysql_fetch_array($max)) {
		$j = $maxi[0];
	}
	
	echo '<tr class="titre"><td class="id">#</td><td>Catégorie</td><td>'.$j.'</td><td></td></tr>';
			
	for ($i = 0; $i <= $j; $i++) {
		while ($donnees = mysql_fetch_array ($reponse)) {	
			$a = '
				<tr class="a">
					<td class="id">'.$i.'</td>
					<td class="categorie">'.$donnees['categorie'].'</td>
					<td class="modifier"><a href="?c=admin&d=cat&cat='.$donnees['id_categorie'].'" title="modifier"><img src="illus/modif.gif" class="modifier" /></a></td>
					<td class="supprimer"><a href="include/supprimer.php?a=cat&id='.$donnees['id_categorie'].'" title="supprimer"><img src="illus/del.gif" class="supprimer" /></a></td>
				</tr>';
			$b = '
				<tr class="b">
					<td class="id">'.$i.'</td>
					<td class="categorie">'.$donnees['categorie'].'</td>
					<td class="modifier"><a href="?c=admin&d=cat&cat='.$donnees['id_categorie'].'" title="modifier"><img src="illus/modif.gif" class="modifier" /></a></td>
					<td class="supprimer"><a href="include/supprimer.php?a=cat&id='.$donnees['id_categorie'].'" title="supprimer"><img src="illus/del.gif" class="supprimer" /></a></td>
				</tr>';
		
			if ($i%2 == 0) echo $a; else echo $b;
		}
	}

	echo '</table>';



J'ai placé le for et les while dans tous les sens, c'est un véritable casse tête et je n'obtien jamais le résultat escompté...

3 réponses

Sandriine Messages postés 1255 Date d'inscription   Statut Membre Dernière intervention   283
 
Bonjour,

Tout d'abord je ne sais pas si tu as visualisé ton message avant de le poster mais il est illisible...

De plus, en php, pour faire une opération différente d'une ligne à l'autre dans un tableau, on utilise généralement le modulo.

Voici une page qui devrait t'aider : https://phpsources.net/tutoriel-modulos.htm
0
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
J'ai déjà vu pire... et en plus j'ai simplifié le code pour le message...

J'utilise le % (modulo)..., mais je ne cherche juste à trouver le sens...

Merci pour ta suggestion, mais c'est un peu plus complexe.

Pour résumé, Je fais une requete, je compte le nombre de résultats, je fais un for (i=0, i < au nombre de resultat de la requete), ensuite si i est paire, couleur a et sinon, couleur b...

entre les while, les for et les if, je m'en sors plus...
0
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
0