probleme avec UPDATE

Eléphant du PHP | 131 Messages

11 sept. 2005, 16:53

salut,

j'arrive à afficher les données d'un membre. Lorsque je modifie et que je valide le script marche bien mais la modification n'est pas signalée dans ma table.

Voici mon code de mise à jour.
<?php
   
$BD_serveur     = "localhost";
$BD_utilisateur = "root";
$BD_motDePasse  = "";
$BD_base        = "mabase";

$pseudo      = isset($_POST["pseudo"]) ? $_POST["pseudo"] : ""; 
$motdepasse  = isset($_POST["motdepasse"]) ? $_POST["motdepasse"] : ""; 
$nom         = isset($_POST["nom"]) ? $_POST["nom"] : ""; 
$prenom      = isset($_POST["prenom"]) ? $_POST["prenom"] : "";

    
    echo "Bonjour $prenom $nom,<br>";
    mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
    or die("Impossible de se connecter au serveur de bases de données.");
    @mysql_select_db($BD_base) or die("Impossible de se connecter à la base de données.");
   
    $requete="UPDATE Table SET
    non='".$_POST["nom"]."',prenom='".$_POST["prenom"]."',adresse='".$_POST["adresse"]."' WHERE   pseudo='$pseudo' AND motdepase='$motdepasse'";
    $result = @mysql_query($requete);

    if (!$result) {
    echo "Vos données ont été mises à jour<br>";

            } else {
                echo "La mise à jour de vos données a échouée. Essayez plus tard<br>";

    }
    mysql_close();
?>

HD
Mammouth du PHP | 1181 Messages

11 sept. 2005, 16:58

j'ai l'impression qu'il a erreur au niveau de
if (!$result) {
car a mon avis :
if (!$result) { -->echec
else -->effectué

et de toute facon $result = @mysql_query($requete); donc $result est toujours verifié donc ta condition qui suit n'a pas lieu d'etre
met à la place de
$result = @mysql_query($requete); 
$result = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());
Modifié en dernier par HD le 11 sept. 2005, 16:58, modifié 1 fois.
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 493 Messages

11 sept. 2005, 16:58

Merci de suivre la règle numéro 3.

tente :
mysql_query( $requete ) or die( mysql_error() );
[/size]

Edit: décidément, on répond toujours avant moi. Résolu ?

Eléphant du PHP | 131 Messages

11 sept. 2005, 18:16

tout rien dans la table j'ai le message vos données ont été mises à jour. je ne comprend pas pourquoi cela ne marche pas

HD
Mammouth du PHP | 1181 Messages

11 sept. 2005, 18:19

si tu avais bien lu et suivi mon post tu n'aurais pas ce message pour la simple raison que je t'ai dit de l'effacer et le remplacer par un autre code
(voir up)
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 131 Messages

11 sept. 2005, 18:30

En suivant à la lettre la modif voici ce que j'ai comme message

Bonjour Eric Dupont
Erreur SQL !
UPDATE Table SET non='Dupont',prenom='Eric',adresse='12,Rues des oliviers' WHERE pseudo='' AND motdepase=''
La table 'nombase.table' n'existe pas

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 sept. 2005, 18:44

salut,
vu ton mssage d'erreur qui me parrait très clair, la table "Table" n'existe pas dans ta BD verifi le nom :wink:

sinon tu te retrouve avec le champs pseudo et mdp sans valeur dans ta requete update, fait plustot un truc du genre:
WHERE   pseudo='" . $pseudo . "' AND motdepase='" . $motdepasse ." '";

HD
Mammouth du PHP | 1181 Messages

11 sept. 2005, 18:45

ah ben tu l'as ton erreur :
soit la base n'exsite pas
soit c'est la table qui n'existe (le cas le plus probable)
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 131 Messages

11 sept. 2005, 19:11

Eh oui j'ai mal écrit ma table. mais rien ne bouge tjrs dans ma table
voici le message que j'ai Bonjour Eric françois Dupont,
Vos données ont été mises à jour

car j'ai modifié mon prénom en ajoutant françois Et j'ai tjr eric dans le champ prenom

Eléphant du PHP | 131 Messages

14 sept. 2005, 11:08

Vous m'aviez abandonné à mon sort. je vous en prie pas ça mon script ne marche toujours pas

Mammouth du PHP | 19672 Messages

14 sept. 2005, 11:19

Bon, on va faire un arrêt sur image: regarde bien ta requête et en particulier les noms des champs:
$requete="UPDATE Table 
SET  non='".$_POST["nom"]."',
     prenom='".$_POST["prenom"]."',
     adresse='".$_POST["adresse"]."' 
WHERE   pseudo='$pseudo' 
AND motdepase='". $motdepasse ."'";
Tu as marqué le champ "non" : ce ne serait pas "nom" par hasard ?
Dans la clause WHERE, tu as le champ "motdepase" : ce ne serait pas "motdepasse" :?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Tho
Eléphant du PHP | 58 Messages

14 sept. 2005, 11:33

En même temps mysql aurait jamais accepté des champs qui n'existent pas. je sens que 001cod10 cache quelque chose...

Eléphant du PHP | 131 Messages

17 sept. 2005, 12:39

Tho je ne cache rien. Je ne sais pas de quoi tu parles.

Je problème, Cyrano tu as raison j'ai c'est bien nom et motdepasse les champs qui comportent des erreurs. J'étais fatigué. Je m'excuse.

Apres correction voici ce que j'ai :

Bonjour Claude François Dupont,
Vos données ont été mises à jour
UPDATE membres SET nom='Dupont', prenom='Claude François', adresse='2, Rue des oliviers' WHERE pseudo='' AND motdepasse=''

Je remarque que j'ai un problème de POST avec pseudo et motdepasse
Ce que je ne comprends pas l'envoie des pseudo et motdepasse qui me permet d'afficher le formulaire du membre. J'ai seulement modifier prenom qui contenait "Claude". je ne sais pas comment régler ce problème.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 sept. 2005, 13:03

Salut, tu as certainement des problemes coté formulaire, si tu pouvais mettre le code histoire de voir les passages et nom des champs ?!

Mammouth du PHP | 19672 Messages

17 sept. 2005, 13:27

Bon, on va repartir du script d'origine corrigé (vérifie bien les noms de varaible et de champ):
<?php
$BD_serveur     = "localhost";
$BD_utilisateur = "root";
$BD_motDePasse  = "";
$BD_base        = "mabase";

$pseudo      = isset($_POST["pseudo"])     ? trim($_POST["pseudo"])     : "";
$motdepasse  = isset($_POST["motdepasse"]) ? trim($_POST["motdepasse"]) : "";
$nom         = isset($_POST["nom"])        ? trim($_POST["nom"])        : "";
$prenom      = isset($_POST["prenom"])     ? trim($_POST["prenom"])     : "";

if(!empty($pseudo) && !empty($motdepasse) && !empty($nom) && !empty($prenom))
{
?>
<p>Bonjour <?php echo($prenom ." ". $nom); ?></p>
<?php
    mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
    or die("Impossible de se connecter au serveur de bases de données.");
    mysql_select_db($BD_base) or die("Impossible de se connecter à la base de données.");

    $requete="UPDATE Table SET
                nom='". $nom ."',
                prenom='". $prenom ."',
                adresse='". $adresse ."' 
            WHERE   pseudo='". $pseudo ."' 
            AND motdepasse='". $motdepasse ."'";
    $result = mysql_query($requete);

    if (!$result)
    {
        echo "<p>Vos données ont été mises à jour</p>\n";
    }
    else
    {
        echo "<p>La mise à jour de vos données a échouée. Essayez plus tard</p>\n";
    }
    mysql_close();
}
else
{
    echo("<p>Données incomplètes.</p>\n");
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: