Problème de condition en PHP

Fermé
Nico - 27 nov. 2007 à 19:50
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 29 nov. 2007 à 16:21
Bonjour,

Je suis une truffe je n'arrive pas à faire un bout de code...

Je voudrais que si 'element 1' est superieur à 'element 2' alors que l'element 2 appartient à 'X', j'affiche une truc.

J'espère que je suis clair....

Merci d'avance de vos aides.
A voir également:

14 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 nov. 2007 à 19:53
Qu'est ce que tu veux dire par appartient à X? Tu veux savoir si element2 est un élément du tableau X?
0
je precise, j'ai un classement qui s'affiche disons de 1 à 10 grace à la variable rank, le classement est ordonné par la variable point.

j'enregistre une variable ancienpoint, que je veux ensuite comparé au point de la chose qui est un rang au dessus.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 nov. 2007 à 20:12
Je comprends pas :-)
rank c'est un tableau ou un compteur?
0
point arrivent de la BDD et permet d'ordonner le classement de 1 à 10

rank affiche la valeur du rang de 1 à 10 sans passer par la BDD
$rank = $rank + 1;
echo $rank;

Je cherche à pouvoir afficher une flêche montante pour ceux qui gagnent des places et un descendante pour ceux qui en perdent.

Je me suis dit qu'en enregistrant une variable ancienpoint dans ma BDD je pouvais ensuite faire une comparaison entre ancienpoint et les point du rang au dessus pour afficher mes flêches.

Et je galère ! comme d'hab je suis une bille :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 nov. 2007 à 20:44
Mais ça correspond à quoi le X du début?
Désolé j'ai vraiment du mal :s
0
X du début c'est le resultat point du rang au dessus.

Je cite :

Bonjour,

Je suis une truffe je n'arrive pas à faire un bout de code...

Je voudrais que si 'ancienpoint' est superieur à 'point' alors que 'point' appartient au rang du dessus, j'affiche une truc.

J'espère que je suis clair....

Merci d'avance de vos aides
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 nov. 2007 à 21:01
Je voudrais que si 'ancienpoint' est superieur à 'point' alors que 'point' appartient au rang du dessus, j'affiche une truc.

Toi t'arrive pas à traduire en code, moi j'arrive pas à comprendre en langage humain. Au final on est pas plus avancé l'un que que l'autre....
if ($ancien_point > $point && $point appartient au rang du dessus){
     //Faire ton truc
}

Je comprends pas ton histoire d'appartenance à un rang ou celui du dessus....
0
Ben ouep c'est là ou je bloque aussi au niveau de la traduction en code :

if ($ancien_point > $point && $point appartient au rang du dessus){
//Faire ton truc
}

>> && $point appartient au rang du dessus

La requete sql ordonne le classement

mysql_query("SELECT * FROM `$topsitetab` WHERE id BETWEEN 1 and 500 ORDER BY `$point` DESC LIMIT 0,15");

Pour afficher un rang j'utilise pas la BDD

j'ai mis :

$rank = $rank + 1;
echo $rank;

ce qui affiche :

1. blabla 1000 pts
2. blabla 500 pts
3. blabla 100 pts
etc... dans l'ordre de la requete.

quand on vote pour blabla 100 pts ça lui rajoute 500 points il en a donc 600 et passe en 2., j'enregistre donc ancienpoint 100 avant de lui rajouter les 500 et ensuite je cherche a comparer ses anciens points avec les points de 2. blabla 500 pts ki est passé 3. pour lui afficher une fleche montante.

Merci de ton extrème patience !
0
bon ben ça fait chier !
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 nov. 2007 à 22:06
Ok, mettons que tu aies:

1. prout 1000
2. flet 500
3. clac 100

clac prend 500 points on a donc:

1. prout 1000
2. clac 600 (ancien = 100)
3. flet 500

Donc tu veux tester si 100 est plus grand que 500 et si.... là je vois pas. Tu veux tester si le rang est égal au rang d'au dessus, mais quel...quel....rang....je......
Et c'est donc à flet que tu veux mettre une flèche montante? Mais comme il a monté de rang, de toute façon il a une flèche montante non?
0
On va dire qu'il suffit de comparer les anciens points de clac aux points de flet, c'est tout ce que je cherche à faire...
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 nov. 2007 à 22:31
Ben if($ancien_point > $point)
Non?
0
Ben là je vais comparer ancienpoint de clac aux points de clac et pas à ceux de flet !
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
29 nov. 2007 à 16:21
C'est donc dans la manière de récupérer tes résultats depusi la base qu'il faut faire ça:
$res = mysql_query("SELECT * FROM `$topsitetab` WHERE id BETWEEN 1 and 500 ORDER BY `$point` DESC LIMIT 0,15");
$tab = array();

while($temp = mysql_fetch_assoc($res))
{
    $tab[] = $temp; //tous les rangs dans un tableau
}

/* Affichera 
1. prout 1000
2. flet 500
3. clac 100 */

for ($i=0; $i<sizeof($tab); $i++)
{
    echo ($i+1) . $tab[$i]['name'] . $tab[$i]['points'];
}
/* Ensuite on dit que $j est la position dans $tab où se trouve clac, donc dans $j+1 il y a flet, ça donne*/
if ($tab[$j]['ancien_point'] > $tab[$j+1]['points']){
      //faire ce que tu veux faire
}


Voilà comment je le vois.
0