IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

problème bidon de réinitialisation de variables


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut problème bidon de réinitialisation de variables
    Bonjour,

    j'ai un petit soucis. Je suis dans une page PHP et je reçois un paramètre "sens" qui me dit si je dois ajouter ou si je dois soustraire une valeur $first.
    mon problème c'est qu'à chaque fois ma valeur $first est réinitialisé à 0, alors que je voudrais quel garde sa valeur modifiée.

    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
    16
    17
    18
    global $sql,$first,$limit;
     
    $limit=1;
    $first=0;
    $sens=$_GET["sens"];
     
    if ($sens=='moins'){
    		if($first>=$limit){
    				$first=$first-$limit;
    		}else{
    			$first=0;
    		}
     
    }else if ($sens=='plus'){
    		$first=$first+$limit;
    }
     
    $sql="SELECT * FROM #__meta_modele LIMIT ".$first.",".$limit);
    voilà si quelqu'un pourrait m'éclairer je suis sur que je rate un truc tout con. merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    pas tres claire ton code ... pas tres claire la demande

  3. #3
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    si tu ecris ca, $first=0;
    normal qu'elle soit reinitialisée
    Le but de tout developpeur OO est de devenir une référence.
    Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
    Aider <> Faire a la place de!!!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($sens=='moins')
    {       if(0>=1){$first=0-1;}
            else{$first=0;}
    }
    Cette boucle est fausse elle donnera tjs 0 si sens = moins

  5. #5
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par needles94000
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($sens=='moins')
    {       if(0>=1){$first=0-1;}
            else{$first=0;}
    }
    Cette boucle est fausse elle donnera tjs 0 si sens = moins
    non elle ne donnera pas toujours 0 car on peut avoir déjà cliquer sur plus. c'est juste pour ne pas avoir de chiffre négatif.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Salut,

    Fais un echo de $_GET['Sens'] pour voir s'il ne vaut pas toujours 'moins'.

    Et comme l'on dit les autres, si tu réinitialises $first à 0 à chaque fois,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          if($first>=$limit){
                $first=$first-$limit;
    ne sert à rien

    a+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Tu as bien lu ma phrase ... Si sens = moins alors first vaudra tjs 0

  8. #8
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par billoum
    Salut,

    Fais un echo de $_GET['Sens'] pour voir s'il ne vaut pas toujours 'moins'.

    Et comme l'on dit les autres, si tu réinitialises $first à 0 à chaque fois,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          if($first>=$limit){
                $first=$first-$limit;
    ne sert à rien

    a+
    non mon $sens varie selon le bouton que j'appuie

    le problème c'est que je n'ai pas trouvé de moyen pour que $first ne soit pas toujours remis à 0. Du style mettre une fonction initialiser() qui ne serait exécuter qu'une seule fois. mais j'ai pas trouvé

  9. #9
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par needles94000
    Tu as bien lu ma phrase ... Si sens = moins alors first vaudra tjs 0
    oui je suis d'accord avec toi, ce code fait cela. dans l'état actuelle ce code fait ça. si je clique sur moins alors $first est toujours à zéro.

    Mais moi, je veux que lorsque je clique sur plus. Donc mon $sens aura la valeur 'plus' et donc $first sera incrémenter. mais lorsque je rappuie mon $first repart à zéro. Et moi je veux qu'il garde sa valeur incrémenter.

    mais je ne trouve pas le moyen de faire cela.

  10. #10
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut
    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
    16
    17
    18
     
    global $sql,$first,$limit;
     
    $limit=1;
    $sens=$_GET["sens"];
     
    if ($sens=='moins'){
          if($first>=$limit){
                $first=$first-$limit;
          }else{
             $first=0;
          }
     
    }else if ($sens=='plus'){
          $first=$first+$limit;
    }
     
    $sql="SELECT * FROM #__meta_modele LIMIT ".$first.",".$limit);
    voilà je crois que je me suis mal fait comprendre. j'ai retirer de mon code $first=0;

    donc maintenant comment puis je faire pour que cette valeur ne s'initialise qu'une fois. merci d'avance. et désolé de la confusion que cela à provoquer.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    transmet le par GET de page en page comme le sens et tu l'initialises à zéro qd tu appelles ta page avec les boutons + et -

  12. #12
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut
    il n'y a pas un autre moyen. du style créer une fonction initialise qui ne sera appeler qu'une seul fois. Car c'est un cas un peu spécial j'utilise la methode AJAX et ce bout de code est appelé pour ne pas recharger la page d'origine...

  13. #13
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Pourquoi tu la déclares en global aussi ?

    Tu pourrais faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $first = isset ( $first ) ? $first : 0 ;
    Consultant idéaliste.

  14. #14
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par macbook
    Pourquoi tu la déclares en global aussi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Tu pourrais faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $first = isset ( $first ) ? $first : 0 ;
    j'ai tester ton idée donc mon code c'est:

    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
    16
    17
    18
    19
    20
     
    global $database, $mainframe,$mospath, $my,$limit;
     
    $limit=5;
    $first = isset ( $first ) ? $first : 0 ;
    $sens=$_GET["sens"];
    	if ($sens=='moins'){
    		if($first>=$limit){
    				$first=$first-$limit;
    		}else{
    			$first=0;
    		}
    	}else if ($sens=='plus'){
    				$first=$first+$limit;
    	}
     
    $sql="SELECT * FROM #__meta_modele LIMIT ".$first.",".$limit);
     
    ...
    // puis boucle for qui lance plusieurs echo pour envoyer des noms qui //seront récupérer par le fichier d'origine et lui pourra ainsi réactualiser sa //liste sans se recharger.(selon le principe d'AJAX).
    mais ma variable $first se remet toujours à 0.à chaque fois que je clique.
    j'ai vraiment pas d'idée pour que cette valeur ne s'initialise plus une fois instancié[/code]

Discussions similaires

  1. [FLASH MX2004] Réinitialiser des variables ...
    Par vbcasimir dans le forum Flash
    Réponses: 2
    Dernier message: 21/02/2006, 17h32
  2. Problème de restitution d'une variable.
    Par flyflo dans le forum C++
    Réponses: 4
    Dernier message: 22/01/2006, 15h10
  3. [XSLT] Problème avec la portée des variables
    Par sheura dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 10/01/2006, 12h49
  4. Réponses: 1
    Dernier message: 21/12/2005, 19h08
  5. Problème avec certains caractéres dans variable
    Par Off$ide dans le forum Langage
    Réponses: 14
    Dernier message: 13/12/2005, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo