Réutiliser une valeur calculée

Castor Gaspard
Invité n'ayant pas de compte PHPfrance

02 mars 2010, 00:41

Bonjour,

J'ai cherché, sans trouver la réponse...

Imaginons que je veuille générer des identifiants successifs, 1, 2, 3... Comment puis-je mémoriser la dernière valeur pour la réutiliser dans le calcul et l'incrémenter de 1 ? Suis-je obligé de stocker cette valeur dans un autre fichier texte ou une table ? Ces solutions ne me semblent pas très propres.

Code : Tout sélectionner

<?php $id = 0; $new_id = $id + 1; echo $new_id; // Si id vaut "1", il faudrait qu'au prochain appel du script id vaille 2, et ainsi de suite... ?>
intuitivement, je pensais à un passage de variable par référence, sans maîtriser le concept, mais la documentation ne m'a pas renseigné.

Merci. :)

Gaspard

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 mars 2010, 00:55

La question à te poser est de savoir combien de temps, et pour qui, tu veux stocker cette information. En gros :
- est-ce que chaque utilisateur à sa propre séquence 1, 2, 3... ou est ce qu'un utilisateur peut avoir 1 et 2, un autre 3, etc.
- si l'utilisateur a une séquence 1,2 et qu'il revient le lendemain, aura-t-il un 3 ou de nouveau un 1 ?

En fonction, tu pourras utiliser soit les sessions pour stocker l'information temporairement pour chaque utilisateur (tant qu'il est connecté), soit les cookies pour stocker l'information pour chaque utilisateur (entre chaque visite), soit dans un fichier ou une base de données pour tous les utilisateurs :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Castor Gaspard
Invité n'ayant pas de compte PHPfrance

02 mars 2010, 01:11

Bonsoir Ryle,

Arf, l'idée est de générer des identifiants successifs pour des utilisateurs successifs, eux aussi. Donc la solution du cookie ou de la session n'est pas applicable.

Donc, la solution passe par un stockage. C'est regrettable, je trouve, mais "très" logique.

Merci de ton aide, je vais m'endormir en évacuant une question. ^^

Cordialement,

Gaspard

Mammouth du PHP | 672 Messages

02 mars 2010, 12:05

Autre question :
Quelle est l'utilité de cet identifiant ?

La question peut paraître bête, mais par exemple si c'est pour l'utiliser dans une table d'une BDD, il y a toujours l'option du champ auto-incrémenté :)

Castor Gaspard
Invité n'ayant pas de compte PHPfrance

02 mars 2010, 19:37

Bonjour,

La question est loin d'être bête, mais je voulais me passer de l'appel à une base de données.

Finalement, j'ai "contourné" le problème en renonçant à incrémenter les valeurs au profit d'uniq() ! :mrgreen:

Cordialement,

Gaspard