Opération mathématique sur Variable Session

[Résolu/Fermé]
Signaler
Messages postés
10
Date d'inscription
vendredi 1 février 2013
Statut
Membre
Dernière intervention
27 janvier 2014
-
Messages postés
10
Date d'inscription
vendredi 1 février 2013
Statut
Membre
Dernière intervention
27 janvier 2014
-
Bonjour, bonsoir

Voilà, j'ai un tout petit problème à vous soumettre.

J'aimerais pouvoir changer la valeur de la $_SESSION['credit'] pour soustraire la valeur de 1 à chaque fois que l'internaute clique sur le lien.

Toutefois, et malgré les nombreux tests que j'ai effectué, je suis désarçonné et je m'adresse au conseil des mages (vous) pour aider l'apprenti que je suis à peaufiner sa formule magique.

Voilà, j'espère avoir été assez clair dans l'énoncé de ma problématique et je me tiens à vôtre disposition pour tout complément d'information. D'ailleurs je vais vous donner mon numéro ça sera plus simple 06 XX XX XX 81 ;)

Merci d'avance

7 réponses

Messages postés
31
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
8 septembre 2013
1
Bonsoir :-)

Je vient de faire un test en speed et visiblement un simple
$_SESSION['credit']--;
au début de la page en question suffit...

C'est peut être idiot, mais le "session_start()" est bien placé avant l'opération sur la session ?
Messages postés
10
Date d'inscription
vendredi 1 février 2013
Statut
Membre
Dernière intervention
27 janvier 2014

Bonsoir et merci Tucsky,

Oui le "session_start()" à été placé tout au début en fait

$_SESSION['credit']--;

est la première manipulation que j'ai essayé mais quand je consulte la BDD pour vérifier si la valeur du champ crédit à bien été modifié je constate que sa valeur reste inchangé d'où mon désarroi (oui je sais le mot est un peu fort décholé)

merci :)
Messages postés
31
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
8 septembre 2013
1
Le fait que la valeur de $_SESSION['credit'] devait être reporté en base n'etait pas précisé.

"$_SESSION['credit']--;" ne modifie en rien une base de donnée, mais modifie les fichiers SESSION php du serveur.

Pour cela, il faut en parallèle lancer une requete SQL qui modifiera la valeur du champ crédit dans la BDD.

(ex: mysql_query("UPDATE table SET champ_credit = '".$_SESSION['credit']."' WHERE etc..."))
Messages postés
10
Date d'inscription
vendredi 1 février 2013
Statut
Membre
Dernière intervention
27 janvier 2014

Merci,

Je vais tester, je suis quasiment sûr c'est la bonne solution vu que je n'ai pas concaténé la variable de SESSION dans la requête SQL (je vais tester çà et je reviens vers vous, toi (au choix;) ).

Merci beaucoup pour le temps que tu m'as accordé et bon vent dreux dix soir :)

Merci
Messages postés
10
Date d'inscription
vendredi 1 février 2013
Statut
Membre
Dernière intervention
27 janvier 2014

Bonjour,

Je viens de tester la solution que tu m'as conseillé et cela ne fonctionne toujours pas. J'imagine que j'ai dû faire une petite erreur dans mon code...


if(isset($_POST['credit'])){


/*Procedure de connexion ici*/

$_SESSION['credit']--;
$sql= "UPDATE membres SET 'credit'= '".$_SESSION['credit']."' WHERE id='".htmlspecialchars($_SESSION['id'])."'";
if($connect->query($sql)){
echo 'Votre action a bien été enregistrée';
}
else{
'une erreur s'est produite'.$connect->error;
}

}

Merci
Messages postés
31
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
8 septembre 2013
1
Salut

Y'a une erreur qui s'affiche quelque part ?
Sinon, vu qu'il s'agit uniquement de soustraire de 1 la valeur de crédit dans la table membres, pourquoi ne pas soustraire directement sur la valeur de credit dans la bdd ?

ex: $sql= "UPDATE membres SET credit = credit - 1 WHERE id='".htmlspecialchars($_SESSION['id'])."'";

J'avoue que la methode $connect->query() ne m'ai pas familière, la requete $sql ne présente visiblement aucune erreur de syntax... Une fois la requete exécutée c'est "Votre action a bien été enregistrée" qui s'affiche ou "une erreur s'est produite" ? Je te conseil de faire un echo de ta variable $sql dans l'un des 2 cas pour vérifier son contenu.
Messages postés
10
Date d'inscription
vendredi 1 février 2013
Statut
Membre
Dernière intervention
27 janvier 2014

Bonsoir,

J'ai effectué une batterie de test aujourd'hui et il s'avère que l'erreur se trouve dans ma syntaxe SQL chose qui me parait assez étonnante sachant que c'est la même sur de nombreuses pages de mon site...

Quoiqu'il en soit je continue de faire des test et je reviens vers toi

Merci encore
Messages postés
10
Date d'inscription
vendredi 1 février 2013
Statut
Membre
Dernière intervention
27 janvier 2014

C'est encore , et toujours moi,

J'ai effectué pas mal de test avant de me rendre compte que la solution à mon problème était tellement évidente que je n'y avais même pas pensé (comme c'est souvent le cas d'ailleurs) il suffisait simplment de retirer les guillemets a : SET credit