Page 1 sur 1

Vérification de variable

Posté : 06 mars 2009, 14:12
par dunbar
Bonjour,

Je ne suis pas certain de bien faire !
Exemple :
j'ai deux champs de table
ch1 = 1 ++++ ch2 = 2
ch1 = 11 ++++ ch2 = 3
ch1 = 1 +++++ch2 = 25
ch1 = 18 +++++ch2 = 29
ch1 = 19 +++++ch2 = 22
ch1 = 11 +++++ch2 = 24
Je récupére les données via une boucle WHILE mon soucis es tque je voudrais
vérifier la valeur de ch1 et que ci celle-ci est est égal ch1 de la ligne précédente lui appliquer une variable

Pour l'instand je test comme ceci, mais c'est incorrect et je n'arrive pas voir comment je devrais faire
 
 $var = $var['ch1'] == $var['ch1'];
 
Comment je pourrais faire d'autre ?

D'avance merci

Posté : 06 mars 2009, 15:23
par Ryle
Il te faut utiliser une variable temporaire.

Dans ta boucle qui parcours tes enregistrements, tu vas lire à chaque fois ton $var['ch1'] qui correspond au ch1 de l'enregistrement courrant. Pour pouvoir le comparer avec le suivant, il te faut le stocker dans une variable temporaire, passer à l'itération suivante et comparer ton nouveau ch1 avec celui que tu as laissé dans ta variable. Une fois ta comparaison et ton traitement effectué, tu met à jour ta variable temporaire avec le ch1 courant pour pouvoir le réutiliser lors de la prochaine itération :)

Posté : 06 mars 2009, 17:37
par dunbar
OUi ok il faut que je stock mes valeur ds un tableau :?:
Parce que je ne sais pas comment lire l'item précédent ou suivant :oops:

Posté : 06 mars 2009, 18:12
par Ryle
Bah tout dépend de ce que tu veux faire... d'après ce que tu dis, tu veux juste comparer ton ch1 au ch1 précédent, pour ça, pas besoin de tableau, après c'est une autre histoire :

Code : Tout sélectionner

Déclaration de maVariableTemporaire (null, vide, zéro ...) TANT QUE j'ai des enregistrements à parcourir SI ma donnée ch1 est égale à maVariableTemporaire traitement (appliquer une variable ?) FIN SI Je stocke la valeur de ch1 dans maVariableTemporaire FIN TANT QUE

Posté : 06 mars 2009, 18:32
par dunbar
J'avais déjà essayer mais évidament mon test est faut
$sql1 ="SELECT ta.r_ampli, ta.s_noeud, ta.c_reseau, tc.amo_s_noeud, tc.ava_s_noeud, tc.s_noe_topamp
                            FROM tcable tc, tampli ta
                            WHERE tc.s_noe_tophfc = '".$data['amo_s_noeud']."'
                            AND tc.ava_s_noeud = ta.s_noeud
                            ORDER BY tc.amo_s_noeud, tc.ava_s_noeud
                            ";
               $result1 = mysql_query($sql1) or die('Ne trouve pas toutes les données1 : ' .
               mysql_error());
               $total = mysql_num_rows($result1);
               
               while($row = mysql_fetch_array($result1)){
               	 $ampli = $row['r_ampli'];
               	 $varproprisoire = $row['amo_s_noeud'];
                 //$varamont = ($varproprisoire === $row['amo_s_noeud']) ? "Variablepro =".$varproprisoire."*****".$ampli.'--'.$row['amo_s_noeud']
                 //: "Vide" ;


               	$test = ($varproprisoire === $row['amo_s_noeud'])? "Idem" : "non";

               	echo $ampli .'<br>';
               	echo $test .'<br>';

                }
Le but est de sortir l'élément de la liste pour l'afficher ailleur une fois que les amont corresponde
pour afficher un truc du genre

var1
|
var2 --> var3
|
var4
|
var5 -->var6
|
var7
|
var8 -->var9-->var10
| |
| ---->var 11-->var12
|
|
|
|
Merci

Posté : 06 mars 2009, 18:37
par Ryle
euh..... faut faire le test AVANT de mettre la valeur de ton champ dans ta variable temporaire :)

Sinon... bah... forcément... vont toujours avoir la même valeur ;)