Opération mathématique sur Variable Session

Résolu/Fermé
anchorman Messages postés 10 Date d'inscription vendredi 1 février 2013 Statut Membre Dernière intervention 27 janvier 2014 - 6 sept. 2013 à 22:05
anchorman Messages postés 10 Date d'inscription vendredi 1 février 2013 Statut Membre Dernière intervention 27 janvier 2014 - 8 sept. 2013 à 20:56
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

TucSky Messages postés 32 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 15 mars 2022 1
6 sept. 2013 à 22:13
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 ?
0
anchorman Messages postés 10 Date d'inscription vendredi 1 février 2013 Statut Membre Dernière intervention 27 janvier 2014
6 sept. 2013 à 23:10
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 :)
0
TucSky Messages postés 32 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 15 mars 2022 1
6 sept. 2013 à 23:28
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..."))
0
anchorman Messages postés 10 Date d'inscription vendredi 1 février 2013 Statut Membre Dernière intervention 27 janvier 2014
7 sept. 2013 à 00:31
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anchorman Messages postés 10 Date d'inscription vendredi 1 février 2013 Statut Membre Dernière intervention 27 janvier 2014
7 sept. 2013 à 08:50
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
0
TucSky Messages postés 32 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 15 mars 2022 1
7 sept. 2013 à 11:43
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.
0
anchorman Messages postés 10 Date d'inscription vendredi 1 février 2013 Statut Membre Dernière intervention 27 janvier 2014
8 sept. 2013 à 20:15
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
0
anchorman Messages postés 10 Date d'inscription vendredi 1 février 2013 Statut Membre Dernière intervention 27 janvier 2014
8 sept. 2013 à 20:56
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
0