Sql
Résoluj'aimerais savoir comment "écrire" dans la base de registre...
je m'explique je veut mètre un ''module'' de payement par allopass sur mon site
a chaque fois que un membre valide un code allopass il gagne 1 000point
''je connais presque rien en sql donc voila merci :$ ''
--
L'orthographe c'est pas mon fort mais je fait un effort XD
De plus j'ajouterais simplement que... vous êtes en train de lire ma signature : )
Configuration: Windows XP Firefox 3.0.6
37 réponses
Le problème porte sur l’incrémentation des crédits d’un membre après la validation d’un code Allopass et sur la modification des données dans une base de données via PHP et MySQL. Plusieurs propositions suggèrent d’utiliser une requête UPDATE sur la table des utilisateurs pour augmenter les crédits existants, en ciblant l’identifiant du membre et en ajoutant le nombre de crédits. D'autres réponses précisent les aspects techniques, comme la connexion à la base, l’initialisation des variables et l’importance de tester le code côté serveur plutôt que côté client. Enfin, l’échange souligne l’importance de tester le script sur un environnement sûr et de corriger les éventuelles erreurs d’exécution côté serveur, afin d’assurer une opération fiable.
-
Si je comprends bien :
cat
clear
idm_idc
idu_idc
language
pass
site
tmp_mail
user
sont les noms de tes tables.
id
name
email
pass
share
own
credits
....
Sont les noms des champs de la table 'user';
Si tu veux augmenter le nombre de credits de tes membres, il ne faut pas insérer un nouvel enregistrement mais en modifier un existant :
mysql_query("UPDATE user SET credits=credits+".$nombre_de_credits+" WHERE id='".$id_du_membre_qui_recoit_les_credits."';"); -
oui tout fonctionne comme il faut : D
juste un peut de manque de sécurité ''suffi de rechargé la page'',,, mais je vais cherché un peut mintenan que j'ai compris le principe -
tout fonctionne à présent comme ça devrait ?
(T'inquiètes pas, la prochaine fois que tu feras quelque chose dans le même genre, ça devrait aller beaucoup (beaucoup !) plus vite ... ) -
haaaa voila : D
mille merci : $
surtout vue le temp passé : S -
ha ben voilà, on y arrive ...
ta requête devient donc ...
mysql_query("UPDATE user SET credits=credits+".$nombre_de_credits." WHERE id='".$_SESSION['id']."';");
?
(bien sur, tu peux virer le print_r($_SESSION) maitenant) -
voila le resultat :
Array ( [login] => monemail@hotmail.fr [pwrd] => lemotdepasse [id] => 3 ) -
En effet, ça n'a rien à voir ... :D
Identifie-toi sur ton site et mets ensuite quelque part en bas de ton code
<?php
print_r($_SESSION);
?>
Tu listeras ainsi toutes les variables de session et pourras peut-être voir dans quelle variable session est stocké l'id unique du membre -
et quand je vais dans mysql/user/id/afficher et que je fait crée source php sa me donne :
$sql = "SELECT COUNT(*) AS `Enregistrements`, `id` FROM `user` GROUP BY `id` ORDER BY `id` LIMIT 0, 30 ";
sa a peut être rien a voir mais si sa peut aidé a m'aidai ^_^ -
Si si, mysql sait très bien que 'credits' correspond à la valeur contenue dans le champ 'credits' avant que l'enregistrement (sélectionné avec 'WHERE id=' ) ne soit modifié.
L'erreur doit plutôt venir du id='".$id."'. $id n'a probablement pas la bonne valeur. -
et comment remédié a sa ? : (
-
Contributeur
mysql_query("UPDATE user SET credits=credits+".$nombre_de_credits+" WHERE id='".id"';");
je suppose que c'est parce que MySQL ne sait pas ce que vaut "credits" dans "credits+le nombre".
-
Voila plus de message d'erreur : )
mais les point ne s'ajoute pas : (
''dsl reponse placé au mauvaise endroit'' -
Boah, apparemment tu as trouvé l'erreur sans avoir eu besoin de ce numéro de ligne ... mais ça aurait été certainement plus simple avec !
J'ai ne sais pas pourquoi, mais il me semble que la solution finale n'est pas encore pour tout de suite ... enfin, qui sait ? -
la ligne 12 c'est celle la :
mysql_query("UPDATE user SET credits=credits+".$nombre_de_credits+" WHERE id='".id"';"); -
La ligne 12, c'est laquelle ??
-
Contributeurje remé toujours toute la page mais bon au moins c'est le plus clair possible
ben non parce que là il faut qu'on colle le code dans un éditeur pour trouver la bonne ligne…
c'est ta concaténation :mysql_query("UPDATE user SET credits=credits+".$nombre_de_credits+" WHERE id='".id"';"); mysql_query("UPDATE user SET credits=credits+".$nombre_de_credits." WHERE id='".$id."';");
-
-
-
Contributeur@Utilisateur anonymeDalida me remé dans le droit chemin du forum
et j'ai du mérite parce qu'il y a pas mal de boulot…
-:oD
-
-
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/tosurf1/www/+1.php on line 12
j'ai fait quélque modification qui on rien changé : )
<?php
unset($login,$pwrd,$id);
session_start();
session_register("login","pwrd","id");
require('config_real_inc.php');
require('config_inc.php');
mysql_connect($hostnm,$usernm,$pwd);
mysql_select_db($dbName);
mysql_query("UPDATE user SET credits=credits+".$nombre_de_credits+" WHERE id='".id"';");
mysql_close();
?>
oui je remé toujours toute la page mais bon au moins c'est le plus clair possible -
je confirme sa fonctionne pas : (
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/tosurf1/www/+1.php on line 13 -
alors peut étre sa :
<?php
unset($login,$pwrd,$id);
session_start();
session_register("login","pwrd","id");
require('config_real_inc.php');
require('config_inc.php');
mysql_connect($hostnm,$usernm,$pwd);
mysql_select_db($dbName);
mysql_query("UPDATE user SET credits=credits+".$nombre_de_credits+" WHERE id='".$usernm"';");
mysql_close();
?> -
En relisant ... non, finalement, c pas bon ... :D
$t_user= "user";
-> ca c'est nimporte quoi ...
Tous tes utilisateurs n'ont pas 'user' pour id ... l'id ($t_user) doit être un nombre unique et propre à chaque utilisateur !!
- 1
- 2