Bonjour à tous,
J'ai une boucle qui liste des produits et je voudrais pouvoir comparer le dernier produit avec l'avant dernier.
Si ils sont identiques traitement A sinon traitement B.
Merci d'avance de votre aide.
Bonjour à tous,
J'ai une boucle qui liste des produits et je voudrais pouvoir comparer le dernier produit avec l'avant dernier.
Si ils sont identiques traitement A sinon traitement B.
Merci d'avance de votre aide.
Bonjour,
si tu veux juste comparer le dernier et l'avant dernier élément, il n'y a pas d'intérêt à faire ca dans une boucle.
Si dans une boucle tu veux comparer l'élément courant avec celui qui le précède :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // $liste est un array $dernier = count($liste) - 1; $avant_dernier = $dernier--; if($liste[$dernier] == $liste[$avant_dernier]){ // traitement A } else{ // traitement B }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // $liste est un array $preceding_item = null; foreach($liste as $item){ if(is_null($preceding_item) || $preceding_item != $item){ // traitement A } else{ // traitement B } $preceding_item = $item; }
Oui mais ma boucle vient d'une requête qui me liste des données de mes bases.
Merci d'avance
Re,
dans les deux cas la réponse se trouve juste au dessus, que ce soit si tu veux comparer les deux derniers enregistrements ou si tu veux comparer l'enregistrement courant (celui que tu parcours dans ta boucle) avec l'enregistrement précédent (celui que tu viens juste de parcourir dans ta boucle).
Ok,
Bon j'ai essayé un truc comme ça :
J'ai juste mis une balise couleur afin de voir ds mon tableau si cela fonctionne ou pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $article = array(); while ($donnees_vente_mois = mysql_fetch_array($retour_vente_mois)) { $article[$donnees_vente_mois['article']] = $donnees_vente_mois['article']; foreach($article as $liste) { $dernier = count($liste) - 1; $avant_dernier = $dernier-1; if($liste[$dernier] == $liste[$avant_dernier]) { $couleur = " bgcolor='#999999'";} else { $couleur = ""; } } }
J'ai le message d'erreur suivant :
Notice: Uninitialized string offset: -1
Merci encore pour ton aide !
Re,
pourquoi mettre le foreach dans le while ?
Il y a beaucoup de fautes de synthaxe et du traitements inutiles, tu n'as pas trop compris mon exemple.
Pour finir, en fait ce que tu veux faire c'est colorier une ligne sur 2 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $index = 0; while ($donnees_vente_mois = mysql_fetch_array($retour_vente_mois)){ if($index % 2 == 0){ // nombre pair echo '<font style="color:">'.$donnees_vente_mois[0].'</font>'; } else{ // nombre impair echo $donnees_vente_mois[0]; } $index++; }
Partager