Modifier la valeur d'une variable
Résolu/Fermé
Utilisateur anonyme
-
Modifié par jordane45 le 14/06/2016 à 00:36
Utilisateur anonyme - 14 juin 2016 à 18:53
Utilisateur anonyme - 14 juin 2016 à 18:53
A voir également:
- Modifier la valeur d'une variable
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Comment modifier un pdf - Guide
- Modifier sa voix en direct - Guide
3 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié par jordane45 le 14/06/2016 à 00:38
Modifié par jordane45 le 14/06/2016 à 00:38
Bonjour,
Vu que tu utilises PDO .. Autant le faire bien via les requêtes préparées.
De plus.. tu écris la variable $sql ... mais à aucun moment tu ne lances la requête....
Et enfin... pour être sûr que php prenne la valeur issue de la bdd comme un nombre... ajoute donc un intval
Donc :
nb: tu avais également oublié de mettre un WHERE dans ta requete pour préciser quel id tu souhaitais updater....
Cordialement,
Jordane
Vu que tu utilises PDO .. Autant le faire bien via les requêtes préparées.
De plus.. tu écris la variable $sql ... mais à aucun moment tu ne lances la requête....
Et enfin... pour être sûr que php prenne la valeur issue de la bdd comme un nombre... ajoute donc un intval
Donc :
<?php //démarrage des sessions session_start(); // pense à placer la connexion à ta bdd dans un autre fichier // que tu n'auras qu'à inclure dans tes pages lorsque tu en as besoin ! $bdd = new PDO("CA_C'EST_BON_MAIS_PERSONNEL :p"); //récupération "propre" des variables AVANT de les utiliser: $id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL; $points = !empty($_SESSION['points']) ? intval($_SESSION['points']) : 0; if ($id) { $points++; // on incrémente le nombre de points // on prépare la requete et les variables $sql = "UPDATE INTO membres(points) VALUES(:points) WHERE id=:id"; $datas = array(':points'=>$points, ':id'=>$id); //execution de la requete try{ $prepare = $bdd->prepare($sql); $prepare->execute($datas); }catch(Exception $e){ //en cas de pb dans la requete echo 'Error ! ' . $e->getMessage(); } } // fin du IF($id) ?>
nb: tu avais également oublié de mettre un WHERE dans ta requete pour préciser quel id tu souhaitais updater....
Cordialement,
Jordane
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
14 juin 2016 à 16:14
14 juin 2016 à 16:14
Tu as un catch en trop !
} catch (Exception $ex) {
try{ $bdd= new PDO("mysql:host=".$host.";dbname=".$dbname.$charset,$user,$pwd); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); }
L'erreur a changé, désormais c'est
Je pense qu'on se rapproche du but, merci de ton aide!
Error ! SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO membres(points) VALUES('8') WHERE id='1'' at line 1
Je pense qu'on se rapproche du but, merci de ton aide!
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
>
Utilisateur anonyme
14 juin 2016 à 18:36
14 juin 2016 à 18:36
Ben là .... c'est donc un souci de requête SQL.
As tu essayé ta requête DIRECTEMENT dans ta BDD ????
Commence par ça.
As tu essayé ta requête DIRECTEMENT dans ta BDD ????
Commence par ça.
PatFoll
Messages postés
111
Date d'inscription
lundi 30 mai 2016
Statut
Membre
Dernière intervention
5 juillet 2016
20
Modifié par PatFoll le 14/06/2016 à 00:00
Modifié par PatFoll le 14/06/2016 à 00:00
Bonsoir,
je m'y connais pas forcément en PHP, mais si tu souhaites que ta valeur augmente de (+)1 il faudrait peut être le stipuler quelque part ?
Après pour de l'aide concrète, désolé mais ça ne sera pas de ma part, disons que c'était plutôt un 'avis' :).
Bon Courage à toi.
#Pat Foll - Grincheux#
je m'y connais pas forcément en PHP, mais si tu souhaites que ta valeur augmente de (+)1 il faudrait peut être le stipuler quelque part ?
Après pour de l'aide concrète, désolé mais ça ne sera pas de ma part, disons que c'était plutôt un 'avis' :).
Bon Courage à toi.
#Pat Foll - Grincheux#
14 juin 2016 à 12:51
Du coup je suis toujours bloqué, tu sais d'ou ça peut venir? MERCI en tout cas !
Modifié par jordane45 le 14/06/2016 à 13:33
Pour que PDO t'affiche les erreurs... il faut, lors de la connexion ajouter quelques options.
Modifie ta connexion à la bdd en t'inspirant de ce code :
Modifié par xXZOULOUXx le 14/06/2016 à 14:26
la ligne 35 étant:
Etant donné que c'est de ton code que provient l'erreur je n'ai aucune idée de sa signification ! x)
Je te remet le code complet avec les modification que j'ai apporté à tes guillemets et accolades:
Modifié par jordane45 le 14/06/2016 à 15:34
est fausse ...
Pourquoi n'as tu pas gardé ceci ?
EDIT : Correction de la chaine de connexion.
14 juin 2016 à 15:58
" Fatal error: Call to a member function prepare() on a non-object in /home/u767521012/public_html/+1.php on line 36 "
Elle est à la ligne 36 parce que j'ai rajouter le $charset.