Mes requetes ne s'effectuent pas mysql_query
Résolu
mimi8210
Messages postés
167
Date d'inscription
Statut
Membre
Dernière intervention
-
hack_net Messages postés 783 Date d'inscription Statut Membre Dernière intervention -
hack_net Messages postés 783 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Aucun message d'erreur, le code s'effectue jusqu'à la fin, simplement mes requêtes ne s'effectuent pas... Il y a deux requêtes: un select (qui doit s'enregistrer dans une variable) et un update qui doit s'effectuer sur la base de données. Le fichier concerne la modification d'un mot de passe. Voici les deux lignes de codes :
$req = mysql_query("SELECT motdepasse FROM CLIENT WHERE pseudonyme= '" .$_SESSION['pseudonyme']. "'") or die ("Erreur requete: ".mysql_error());
mysql_query("UPDATE CLIENT SET motdepasse=' ".$_POST["mdpnouveaux"]." ' WHERE pseudonyme=' ".$_SESSION["pseudonyme"]." '") or die ("Erreur insert: ".mysql_error());
Je précise que l'utilisateur est bien connecté, et que le reste du code fonctionne (j'ai fais des tests pour vérifier mes conditions). Une autre précision, si ça peut vous aider, lorsque que je fais directement par exemple $req='coucou'; la suite du code fonctionne correctement jusqu'à l'UPDATE ...
Aucun message d'erreur, le code s'effectue jusqu'à la fin, simplement mes requêtes ne s'effectuent pas... Il y a deux requêtes: un select (qui doit s'enregistrer dans une variable) et un update qui doit s'effectuer sur la base de données. Le fichier concerne la modification d'un mot de passe. Voici les deux lignes de codes :
$req = mysql_query("SELECT motdepasse FROM CLIENT WHERE pseudonyme= '" .$_SESSION['pseudonyme']. "'") or die ("Erreur requete: ".mysql_error());
mysql_query("UPDATE CLIENT SET motdepasse=' ".$_POST["mdpnouveaux"]." ' WHERE pseudonyme=' ".$_SESSION["pseudonyme"]." '") or die ("Erreur insert: ".mysql_error());
Je précise que l'utilisateur est bien connecté, et que le reste du code fonctionne (j'ai fais des tests pour vérifier mes conditions). Une autre précision, si ça peut vous aider, lorsque que je fais directement par exemple $req='coucou'; la suite du code fonctionne correctement jusqu'à l'UPDATE ...
A voir également:
- Mes requetes ne s'effectuent pas mysql_query
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ? ✓ - Forum Access
- Requête : mots commençant par... ✓ - Forum Access
- Ce réseau est bloqué en raison de plaintes d'abus non traitées concernant un comportement malveillant. cette page vérifie si c'est bien un humain qui envoie les requêtes et non un robot venant de ce réseau ✓ - Forum Réseaux sociaux
- Expliquez les différences entre les différentes requêtes - Forum Bases de données
- JA-Tennis - Télécharger - Sport
5 réponses
Attention !
Quand tu dois faire plusieurs conditions de sélection (plusieurs AND après le WHERE), penses à bien mettre les champs que tu as sélectionné ! Ici après ton select tu prends motdepasse or dans tes conditions tu prends aussi pseudonyme ! Normale que SQL ne puisse pas te renvoyer pseudonyme !!!
Et, avec juste ce bout de code, je peut te dire que ta requette select ne sert à rien du tout...
Quand tu dois faire plusieurs conditions de sélection (plusieurs AND après le WHERE), penses à bien mettre les champs que tu as sélectionné ! Ici après ton select tu prends motdepasse or dans tes conditions tu prends aussi pseudonyme ! Normale que SQL ne puisse pas te renvoyer pseudonyme !!!
Et, avec juste ce bout de code, je peut te dire que ta requette select ne sert à rien du tout...
Je suis désolée je n'arrive pas à comprendre ce que tu essayes de m'expliquer... je te passes le code de mon fichier :
<?php
// Inclusion et execution du fichier db.php
require('connexionBDD.php');
// Recuperation du mot de passe actuel de l'utilisateur
$req = mysql_query("SELECT motdepasse FROM CLIENT WHERE pseudonyme= '" .$_SESSION['pseudonyme']. "'") or die ("Erreur requete: ".mysql_error());
// On vérifie si tous les champs sont remplis
if (empty($_POST["mdpactuel"]) || empty($_POST["mdpnouveaux"]) || empty($_POST["mdpconfirme"]))
{
echo'Veuillez remplir tous les champs';
?>
<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
<?php
}
else
{
// On verifie si le mot de passe actuel tapé par l'utilisateur est correct
if ($_POST["mdpactuel"] != $req)
{
echo 'Votre mot de passe actuel est erroné';
?>
<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
<?php
}
else
{
// On verifie la confirmation du nouveaux mot de passe
if ( $_POST["mdpnouveaux"] != $_POST["mdpconfirme"] )
{
echo 'Erreur dans le nouveaux mot de passe';
?>
<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
<?php
}
// Si tout va bien, on modifie le mot de passe dans la base de données puis on redirige vers l'index
else
{
mysql_query("UPDATE CLIENT SET motdepasse=' ".$_POST["mdpnouveaux"]." ' WHERE pseudonyme=' ".$_SESSION["pseudonyme"]." '") or die ("Erreur insert: ".mysql_error());
header('location: index.php');
}
}
}
?>
Pourquoi dis tu que mon SELECT ne sert à rien ? Parce que moi je veux juste qu'il me renvoit le mot de passe de l'utilisateur connecté ... =/
<?php
// Inclusion et execution du fichier db.php
require('connexionBDD.php');
// Recuperation du mot de passe actuel de l'utilisateur
$req = mysql_query("SELECT motdepasse FROM CLIENT WHERE pseudonyme= '" .$_SESSION['pseudonyme']. "'") or die ("Erreur requete: ".mysql_error());
// On vérifie si tous les champs sont remplis
if (empty($_POST["mdpactuel"]) || empty($_POST["mdpnouveaux"]) || empty($_POST["mdpconfirme"]))
{
echo'Veuillez remplir tous les champs';
?>
<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
<?php
}
else
{
// On verifie si le mot de passe actuel tapé par l'utilisateur est correct
if ($_POST["mdpactuel"] != $req)
{
echo 'Votre mot de passe actuel est erroné';
?>
<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
<?php
}
else
{
// On verifie la confirmation du nouveaux mot de passe
if ( $_POST["mdpnouveaux"] != $_POST["mdpconfirme"] )
{
echo 'Erreur dans le nouveaux mot de passe';
?>
<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
<?php
}
// Si tout va bien, on modifie le mot de passe dans la base de données puis on redirige vers l'index
else
{
mysql_query("UPDATE CLIENT SET motdepasse=' ".$_POST["mdpnouveaux"]." ' WHERE pseudonyme=' ".$_SESSION["pseudonyme"]." '") or die ("Erreur insert: ".mysql_error());
header('location: index.php');
}
}
}
?>
Pourquoi dis tu que mon SELECT ne sert à rien ? Parce que moi je veux juste qu'il me renvoit le mot de passe de l'utilisateur connecté ... =/
Ok donc pour la requête SELECT le problème est réglé! Merci ! =)
... As-tu une idée pour le UPDATE ?
... As-tu une idée pour le UPDATE ?
Oula sacré bordel ce code :p
Voila qui devrait être mieux ;)
A+
Voila qui devrait être mieux ;)
<?php // Inclusion et execution du fichier db.php require('connexionBDD.php'); // Recuperation du mot de passe actuel de l'utilisateur $req = mysql_query("SELECT * FROM CLIENT WHERE pseudonyme='".$_SESSION['pseudonyme']."'") or die ("Erreur requete: ".mysql_error()); // on selectionne tout les champs ;) P.S : si ça ne marche pas, vérifie qua ta base de donnée s'appelle CLIENT et non client ou Client ;) // On vérifie si tous les champs sont remplis if(empty($_POST["mdpactuel"]) || empty($_POST["mdpnouveaux"]) || empty($_POST["mdpconfirme"])){ echo'Veuillez remplir tous les champs'; ?> <input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/> <?php } else{ // On verifie si le mot de passe actuel tapé par l'utilisateur est correct //if ($_POST["mdpactuel"] != $req){ ==> IMPOSSIBLE ! En effet, $req renvoie 0 si erreur, et 1 si ok, donc tu fais : $tab = @mysql_fetch_array($req); // le @ sert a masquer les éventuelle erreur. Ici on met ta requette dans un tableau virtuel if($tab['motdepasse'] != $_POST["mdpactuel"]){ // ici motdepasse est le nom de ta colonne echo 'Votre mot de passe actuel est erroné'; ?> <input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/> <?php } else{ // On verifie la confirmation du nouveaux mot de passe if($_POST["mdpnouveaux"] != $_POST["mdpconfirme"]){ echo 'Erreur dans le nouveaux mot de passe'; ?> <input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/> <?php } // Si tout va bien, on modifie le mot de passe dans la base de données puis on redirige vers l'index else{ mysql_query("UPDATE CLIENT SET motdepasse='".$_POST["mdpnouveaux"]."' WHERE pseudonyme='".$_SESSION["pseudonyme"]."'") or die ("Erreur insert: ".mysql_error()); header('location: index.php'); } } } ?>
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ca marche ! Je vais essayé de chercher où est ce que ça change pour le UPDATE parce que j'ai toujours pas compris mon erreur...
Merci beaucoup !! =) =)
Merci beaucoup !! =) =)
Assures-toi que les nom de champs correspondent biens avec ceux de la base de donnée, vérifie le contenu des variables $_POST["mdpnouveaux"] et $_SESSION["pseudonyme"].
S'il t'affiche ton or die, donne nous l'erreur afficher, sinon vérifie ce que je t'ai dit (pour ce faire, commente ton UPDATE (met un // devant) et met echo $_POST["mdpnouveaux"]."<br>".$_SESSION["pseudonyme"]; )
S'il t'affiche ton or die, donne nous l'erreur afficher, sinon vérifie ce que je t'ai dit (pour ce faire, commente ton UPDATE (met un // devant) et met echo $_POST["mdpnouveaux"]."<br>".$_SESSION["pseudonyme"]; )