Page 1 sur 1

Demande d'aide php => data base

Posté : 16 juin 2016, 22:25
par Pi4Enkaye
Bonjour/bonsoir à tous !
Je cherche une personne qui s'y connaît en php. Qui sait gérer la liaison php => phpmyadmin.
Il me faudrait de l'aide pour enregistrer et mettre à jour des valeurs dans une table db, en fonction d'une condition.
Voici les détails :
Si la condition est valide :
il faut voir dans la base de donnée, dans la colonne credits, combien l'utilisateur a de crédits.
S'il n'en a pas, $newcredits sera 0 s'il en a, le met le nom de crédits à $newcredits et on ajoutera 1 à $newcredits.
A la fin, une fois que la variable est a jour, une sauvegarde s'effectue dans la base de donnée.

Code : Tout sélectionner

if ($response->is_valid) { // cest ici que j'ai besoin d'aide.... J'ai l'impression d'avoir fait n'apporte quoi :( $newcredits = 'SELECT count(*) FROM users WHERE credits="'.mysql_escape_string(['credits']).'"'; $newcredits += 1; $insertcredit = $base->prepare("UPDATE users SET credits = ?"); $insercredit->execute(array($newcredits)); } else { // je m'occuperai de ce point ;) } } ?>

Re: Demande d'aide php => data base

Posté : 16 juin 2016, 22:27
par Pi4Enkaye
Petite faute de frappe, excusez moi :
S'il n'en a pas, $newcredits sera 0 s'il en a, => on met le nombre de crédits à $newcredits <= et on ajoutera 1 à $newcredits.

Re: Demande d'aide php => data base

Posté : 16 juin 2016, 23:39
par or 1
cela fonctionnera s'il n'y a qu'un seul utilisateur dans la tables users. s'il y en a plusieurs, il faut dans les 2 requetes rajouter une condition pour filtrer le seul utilisateur courant.
SELECT count(*) FROM users WHERE credits="'.mysql_escape_string(['credits']).'" and iduser=$id
UPDATE users SET credits = ? where iduser = ?

Re: Demande d'aide php => data base

Posté : 17 juin 2016, 21:43
par Pi4Enkaye
Je ne parviens pas à faire marcher le code, est-il possible pour vous d'assembler ce que vous avez cité mais à la place des id, l'email de l'utilisateur ?

Merci :)

Re: Demande d'aide php => data base

Posté : 18 juin 2016, 00:21
par @rthur
Bonjour,

PHPfrance est un forum d'entraide où nous sommes tous bénévoles avec pour objectif d'aider les développeurs en difficulté pour qu'ils réussissent eux-mêmes à trouver des solutions et corriger leur code.
Nous pouvons te donner des pistes ou t'aider sur un point spécifiques, mais on ne va pas faire ton code à ta place.

Bref, qu'as tu essayé ?
Qu'est-ce qui ne marche pas ? Quels sont les messages d'erreurs ?

Re: Demande d'aide php => data base

Posté : 18 juin 2016, 08:02
par Pi4Enkaye
Bonjour,
enfaite, cela fait 3 jours que je n'y arrive pas, j'ai essayé avec pleins de solutions.

http://hastebin.com/yezuzamavi.vhdl

Re: Demande d'aide php => data base

Posté : 20 juin 2016, 13:53
par moogli
salut,

ton code mélange l'extension mysql et pdo et n'est pas syntaxiquement correcte.
Il serait opportun de revoir les bases du langage ;)

si tu cherches simplement l'increment de la colonne credit tu fait tous en sql
il te faut bien sur une clause default 0 sur la colonne pour éviter les emmerdes.
update user set credits = credits + 1 where email='xxxx'
vu que tu utilises PDO je t'invite à utiliser les marqueurs nommé (http://php.net/manual/fr/pdo.prepare.php#example-1029).
Vu que ta requête n'est pas une "vraie" requête préparée tu peux aussi utiliser la concaténation et la méthode quote

@+

Re: Demande d'aide php => data base

Posté : 25 juin 2016, 09:39
par Diveur
Bonjour,
j'ai réussit à faire ce que je voulais mais ducoup, je voudrais faire une variable qui comporte l'adresse email du client.

Code : Tout sélectionner

$mailing = $_SESSION['email']
Et cela ne fonctionne pas. Il y a bien un session start etc au début de la page.
Pouvez vous m'aider svp ?

Re: Demande d'aide php => data base

Posté : 27 juin 2016, 12:39
par moogli
salut,

la comme ça non. Nous n'avons pas assez d'information avec les quelques lignes données sur ton premier message.

il faut être sur qu'il y ait bien l'index email dans le tableau $_SESSION. D'ailleur la variable $mailing est inutile, tu peux directement utiliser $_SESSION['email'] ;)
Tu peux vois ce qu'il y a dans $_SESSION avec un var_dump($_SESSION).

Peux être faut il simplement l'ajouter à la connexion de l'utilisateur ?
Cela peux être aussi une coquille ? (email / mail ?)

@+