Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1724 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu]Incrémentation variable à chaque rechargement de la page

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu]Incrémentation variable à chaque rechargement de la page

n°1712299
tostiere
Posté le 03-04-2008 à 16:29:51  profilanswer
 

Bonjour,
j'aurais besoin de savoir comment fait-on pour incrémenter une variable à chaque fois que ma page index.php est rechargée (avec le bouton F5 par exemple).
 
J'ai crée une fonction avec à l'intérieur une variable en "static" comme dans cet exemple :
 

Code :
  1. function test()
  2. {   
  3. static $a = 0;     
  4. $a++;
  5. }


 
Si on appele la fonction test() plusieurs fois dans la même page à la suite, ça s'incrémente normalement.
 
Mais ce que je voudrais ici, c'est qu'elle s'incrémente uniquement à chaque fois qu'on appele la page, ce qui n'est pas le cas ici.
Quelqu'un saurait-il comment faire ?  :)


Message édité par tostiere le 04-04-2008 à 09:46:02
mood
Publicité
Posté le 03-04-2008 à 16:29:51  profilanswer
 

n°1712302
babasss
Posté le 03-04-2008 à 16:35:44  profilanswer
 

et si tu fais un :

Code :
  1. function test()
  2. {
  3. b = 0;
  4. if (b == 0) { static $a = 0; $a++; b = 1; }
  5. }


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1712311
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-04-2008 à 16:55:53  profilanswer
 

tostiere> [:prozac] ...
Quel est à ton avis la durée de vie de ta variable $a ???
Que vaudra-t-elle la prochaine fois que ta page index sera appelé?

 
babasss a écrit :

Code :
  1. function test()
  2. {
  3. b = 0;
  4. if (b == 0) { static $a = 0; $a++; b = 1; }
  5. }


[:prozac] c'est juste n'importe quoi ce que tu as écrit...
En dehors de pas faire ce qu'il demande (enfin ce que j'ai compris de sa demande) et des erreurs de syntaxe, ton code  revient à:

Code :
  1. function test(){ static $a = 1; }

Message cité 1 fois
Message édité par anapajari le 03-04-2008 à 16:58:37

---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1712312
tostiere
Posté le 03-04-2008 à 16:57:16  profilanswer
 

Je viens d'essayer mais malheureusement ça ne marche pas plus :(
Merci pour ton aide en tout cas.
 
D'ailleurs tu m'as donné une idée et j'ai essayé ça :
 

Code :
  1. function test()
  2. {
  3.  static $a = 0;
  4.  if ($a == 0)
  5.   $a++;
  6.  echo $a;
  7. }


 
Mais ça ne marche pas non plus.
 
D'autres idées ? :)

n°1712314
tostiere
Posté le 03-04-2008 à 17:00:45  profilanswer
 

anapajari > normalement vu que la variable $a est statique, sa durée de vie devrait être égale à la durée de vie de l'instance non ?
 
Bien-sûr à chaque rechargement de la page on détruit l'ancienne instance et on crée une nouvelle, ce qui me ramène au topic initial... et donc mis à part passer par un fichier ou la base de données, y a t-il une solution ?
 
:)

n°1712315
babasss
Posté le 03-04-2008 à 17:01:23  profilanswer
 

anapajari a écrit :

[:prozac] c'est juste n'importe quoi ce que tu as écrit...
En dehors de pas faire ce qu'il demande (enfin ce que j'ai compris de sa demande) et des erreurs de syntaxe, ton code  revient à:

Code :
  1. function test(){ static $a = 1; }



Je dis pas le contraire, je ne connaissais pas "static" mais je partais du principe que son code marchait lors d'un rafraichissement de la page.... la question qu'il posait le laisser entendre....
 [:nicoozz]  


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1712334
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-04-2008 à 17:40:48  profilanswer
 

tostiere a écrit :

Bien-sûr à chaque rechargement de la page on détruit l'ancienne instance et on crée une nouvelle, ce qui me ramène au topic initial... et donc mis à part passer par un fichier ou la base de données, y a t-il une solution ?
:)


non mais ça a l'air vachement moins con quand tu poses la question comme ça...


---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1712469
tostiere
Posté le 03-04-2008 à 21:59:51  profilanswer
 

Lol... ok merci quand même, je vais regarder s'il y a moyen de faire ça avec une session comme dernier recours et je vous tiens au courant si y en a que ça intéresse...

n°1712497
skeye
Posté le 03-04-2008 à 22:47:26  profilanswer
 

tostiere a écrit :

Lol... ok merci quand même, je vais regarder s'il y a moyen de faire ça avec une session comme dernier recours et je vous tiens au courant si y en a que ça intéresse...


c'est faisable avec des trucs un peu sioux genre l'extension APC, sinon...mais bon si l'extension est pas installée je suis pas sur que c'est la solution la plus simple!:D
http://fr.php.net/manual/fr/function.apc-store.php


Message édité par skeye le 03-04-2008 à 22:47:48

---------------
Can't buy what I want because it's free -
n°1712599
tostiere
Posté le 04-04-2008 à 09:45:13  profilanswer
 

merci skeye je vais également regarder de ton côté :)
 
Sinon j'ai résolu mon problème avec une variable de session :
 
A la page d'accueil je mets
$_SESSION['incrementation'] = 0;
 
Puis ensuite à la page qui m'intéresse :
$_SESSION['incrementation'] = $_SESSION['incrementation'] + 1;
 
Je ne sais pas quelle est la pertinence de cette solution mais cela fonctionne :)

mood
Publicité
Posté le 04-04-2008 à 09:45:13  profilanswer
 

n°1712601
skeye
Posté le 04-04-2008 à 09:49:04  profilanswer
 

tostiere a écrit :

merci skeye je vais également regarder de ton côté :)
 
Sinon j'ai résolu mon problème avec une variable de session :
 
A la page d'accueil je mets
$_SESSION['incrementation'] = 0;
 
Puis ensuite à la page qui m'intéresse :
$_SESSION['incrementation'] = $_SESSION['incrementation'] + 1;
 
Je ne sais pas quelle est la pertinence de cette solution mais cela fonctionne :)


 
 
Cette solution fonctionne pour un utilisateur unique.
Il faut voir si tu veux une variable commune à tous tes utilisateurs ou pas.


---------------
Can't buy what I want because it's free -
n°1712674
tostiere
Posté le 04-04-2008 à 11:19:07  profilanswer
 

Salut,
non non je n'avais pas precisé mais je n'ai besoin de cette variable que pour un seul utilisateur.
 
En fait le problème de départ est tout bête, il faut pouvoir trier une colonne avec des informations, en cliquant sur son titre. Un clic ordre ascendant, un deuxième clic ordre descendant.
 
Avec une variable d'incrémentation (la variable de session donc), il m'a suffi de faire un modulo pour voir si c'est un nombre pair ou impair, et après le tour est joué.
 
Il doit sûrement y avoir de meilleurs solutions, dans ce cas... prière de me les indiquer :)

n°1712678
skeye
Posté le 04-04-2008 à 11:20:53  profilanswer
 

Oui, il y a plus facile.:D
Tu passes le sens de tri via une variable GET.:D


---------------
Can't buy what I want because it's free -
n°1712739
tostiere
Posté le 04-04-2008 à 13:57:40  profilanswer
 

Ah ? J'aimerais bien que tu m'expliques comment tu ferais dans ce cas-là :)
 
J'ai beau refléchir à ce que tu dis, mais le problème reste exactement le même que celui du départ :/

n°1712745
babasss
Posté le 04-04-2008 à 14:09:20  profilanswer
 

tu as ton titre avec une url et des variables en paramètre (supposition!!!) du style :
<a href=mapage.php?var1=value1&val2=value2>Titre</a>

 

tu rajoutes un paramètre tri que tu gères comme ca :

Code :
  1. if(@$_GET['tri'] == 'asc') {$tri = 'dsc'; } else { $tri = 'asc'; }
  2. echo "<a href=mapage.php?var1=value1&val2=value2&tri=$tri>Titre</a>";



Message édité par babasss le 04-04-2008 à 14:09:32

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1712795
tostiere
Posté le 04-04-2008 à 14:51:42  profilanswer
 

Merci babass pour ton attention, cependant il y a quelque chose que je ne comprends pas dans ton exemple : comment tu fais pour savoir si tu dois transmettre une variable tri ou pas ?
 
Dans le code ci-dessus j'ai l'impression que la condition (@$_GET['tri'] == 'asc') va être toujours verifiée. Il faut bien une autre condition pour savoir quand il faut transmettre et quand il ne faut pas.
 
Merci de m'eclaircir :)
 
EDIT  : ha ben non j'ai rien dit j'avais mal lu la deuxième ligne, je vais essayer pour voir si ça fonctionne :)
 
EDIT2 : effectivement ça marche bien, je vais donc essayer de me décider sur quelle methode choisir.
 
Merci encore :)


Message édité par tostiere le 04-04-2008 à 14:59:16

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu]Incrémentation variable à chaque rechargement de la page

 

Sujets relatifs
Recuperation de la premier caractere du contenu d'une variable[RESOLU] Sauvegarde automatique SQL chez Free
[Résolu] Apache, organisation de la racine[Résolu] Incompréhensible...
SCRIPT - Rechercher dans une page...preg_match et allage à la ligne ? [resolu]
cacher le nom de fichier sur une page HTMLRecharger la page quand l'utilisateur appuie sur le bouton "back"
[RESOLU]Sessions non transmise[Résolu] Ouvrir un fichier .xsl
Plus de sujets relatifs à : [résolu]Incrémentation variable à chaque rechargement de la page


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR