Fonction Update

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fonction Update

par Morph » 22 juin 2007, 10:38

Merci pour tout.
[RESOLU]

par Cyrano » 22 juin 2007, 10:30

Dans le code que je t'ai mis, les fonctions php ont des liens qui pointent vers la doc : clique sur var_dump() pour voir à quoi ça sert et tu comprendras qu'il faudrait la commenter pour ne plus rien afficher une fois cette phase de débuggage terminée.

par Morph » 22 juin 2007, 09:55

Formidable, merci à vous 2.
Je comprend maintenant de mieux en mieux la fonction Update et les erreurs à ne plus faire :D

Je rencontre encore un petit défaut pas très génant mais à corriger car ma page affiche:
string(56) "Update accounts Set epk = epk +10 where login='Morph'"

FELICITATION votre compte Morph a ete solde de 10 points
J'aimerai bien que la ligne

Code : Tout sélectionner

string(56) "Update accounts Set epk = epk +10 where login='Morph'"
Ne s'affiche pas... :oops:

par sadeq » 22 juin 2007, 07:31

Oui, mais l'erreur fondamentale est dans la requête Update car le champ mis à jour s'appelle "points" mais pas "valeur"

Tu as écrit:
$sql2 = "Update accounts Set points = valeur +10 where login='". $_SESSION['login'] ."'";
Alors qu'il faut écrire:
$sql2 = "Update accounts Set points = points +10 where login='". $_SESSION['login'] ."'";

par Cyrano » 22 juin 2007, 06:15

Normal : tu mets dans ta clause WHERE une variable qui n'est pas définie : $login != $_SESSION['login']

Donc, ton code corrigé :
<?php
session_start();

// on se connecte à MySQL
$db = mysql_connect('localhost', 'Morph', '00000');
// on sélectionne la base
mysql_select_db('phpdb',$db);
// ??? cette requête n'est jamais exécutée, à quoi sert-elle ?
$sql = "select password, points from accounts where login='". $_SESSION['login'] ."'";

if( isset($_SESSION['login']) )
{
    $sql2 = "Update accounts Set points = valeur +10 where login='". $_SESSION['login'] ."'";
    /* Affichage de débuggage */
    echo("<pre>\n");
    var_dump($sql2);
    echo("</pre>\n");
    /* Fin de débuggage */
    mysql_query($sql2);
    // la variable de session nom est enregistrée
    echo 'FELICITATION votre compte ' .$_SESSION['login'];
    echo 'a ete solde de 10 points';


}
else
{
    // la variable n'est pas enregistrée, on renvoi sur le formulaire

    echo 'Un probleme est survenu, veuillez contacter le webmaster';
}
?>

par Morph » 21 juin 2007, 23:45

Désolé pour ce double post, j'étais heureux sur le coup mais... ça ne fonctionne toujours pas.
Ta réponse est bonne c'est très bien expliqué et ça fait plaisir :)
Je n'ai aucun message d'erreur mais ma table ne reçois aps +10 comme convenu.
Si je peux me permettre voici mon petit script, dites moi ce que vous en pensez, je suis débutant:
<?php
session_start();

// on se connecte à MySQL 
$db = mysql_connect('localhost', 'Morph', '00000'); 
 // on sélectionne la base 
mysql_select_db('phpdb',$db);
$sql = "select password, points from accounts where login='".$login."'";

if( session_is_registered('login') ) { // ou if( $_SESSION['login'] == true ){

mysql_query("Update accounts Set points = valeur +10 where login='". $login ."'"); 
// la variable de session nom est enregistrée
echo 'FELICITATION votre compte ' .$_SESSION['login'];
echo 'a ete solde de 10 points';


}
else{
// la variable n'est pas enregistrée, on renvoi sur le formulaire

echo 'Un probleme est survenu, veuillez contacter le webmaster'; 

} 

?>

par Morph » 21 juin 2007, 23:15

Merci beaucoup :D

par Cyrano » 21 juin 2007, 22:26

Tu y es presque, à deux erreurs près :
mysql_query("Update test_tbl Set valeur = valeur +10 where login='". $login ."'");
La seconde erreur est au niveau de ta variable $login qui est une chaine de caractère et donc doit être encadrée d'apostrophes. Avec une concaténation propre par dessus et ça devrait fonctionner tout seul.

Fonction Update

par Morph » 21 juin 2007, 20:36

Bonjour,
J'ai créé une table ou il y a une certaine valeur. (par exemple 20)
J'aimerai que lorsqu'une personne vient sur une de mes pages que à cette valeur soit ajouté +10.

Ce qui ferait que après passage de l'utilisateur la valeur soit à 30 (dans mon exemple)

Je pense qu'il faut que je procède avec la fonction update un peu comme cela:

Code : Tout sélectionner

mysql_query("Update test_tbl Set valeur ='+10' where login=$login ");
mais ce que j'écris est incorrecte... comment procéder? :oops: