Problème de condition en PHP

Nico -  
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -
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.
Configuration: Windows XP
Firefox 2.0.0.9

14 réponses

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Qu'est ce que tu veux dire par appartient à X? Tu veux savoir si element2 est un élément du tableau X?
    0
  2. Nico
     
    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
  3. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Je comprends pas :-)
    rank c'est un tableau ou un compteur?
    0
  4. Nico
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Mais ça correspond à quoi le X du début?
    Désolé j'ai vraiment du mal :s
    0
  7. Nico
     
    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
  8. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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
  9. Nico
     
    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
  10. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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
  11. Nico
     
    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
  12. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Ben if($ancien_point > $point)
    Non?
    0
  13. Nico
     
    Ben là je vais comparer ancienpoint de clac aux points de clac et pas à ceux de flet !
    0
  14. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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