Problème de requete

Résolu/Fermé
pontarose - 19 sept. 2007 à 16:42
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 - 8 oct. 2007 à 12:39
Bonjour,
J'ai un problème de requête tout bête j'en suis sûr mais je ne trouve pas. J'obtiens
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in /xxx/xxx/xxx.php on line 71

J'ai lu que c'était dû a un problème au niveau de ma requête mais,

_J'ai essayé ma requete en ligne de commande et celle-ci fonctionne parfaitement.
_J'ai fait un print des variables $pass et $log et j'obtiens bien leur valeur

$requete="update user
set user_pass='$pass'
where user_log='$log'";
$execution=mysql_query($requete);
$resultat=mysql_affected_rows($execution);
if($resultat>0)
{

}

12 réponses

vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
19 sept. 2007 à 16:54
c'est $resultat=mysql_affected_rows();
lorsque tu fait un update, c'est true ou false qui est retourne, c'est pas des ressources
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
19 sept. 2007 à 16:55
salut,

'mysql_affected_rows()' ne fonctionne pas avec 'SELECT', il faut utiliser 'mysql_num_rows()'. et il faut lui fournir la ressource en paramètre.
0
bONJOUR ?
merci

Je pense pas avoir tout compris
Je trouve vraiment bizare le fait de ne pas utiliser mysql_affected_rows!!!


J'ai donc fait:

$requete="update user
set user_pass='$pass'
where user_log='$log'";
$execution=mysql_query($requete);
print("lignes modifiés : $execution<br>");
if ($execution ==true)
{
print("GOOD");
exit;
}
else
{
print("ERREUR");
exit;
}
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
19 sept. 2007 à 17:55
Je trouve vraiment bizare le fait de ne pas utiliser mysql_affected_rows!!!
tes lignes ne sont pas "affectées" par la requête, ce n'est pas la bonne fonction c'est tout !

$requete="update user
set user_pass='$pass'
where user_log='$log'";
$execution=mysql_query($requete);
$resultat= mysql_num_rows($execution);
if($resultat>0)
{

}


et voilà !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je suis perdu....

Si j'utilise la fonction mysql_num_rows()
j'obtiens
Warning: mysql_num_rows(): supplied argument is not a valid MySQL-Link resource in /xxx/xxx/xxx.php on line 71
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
19 sept. 2007 à 19:35
et tu lui donnes bien "$execution" comme paramètre ?
0
vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
20 sept. 2007 à 10:25
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
20 sept. 2007 à 10:39
salut,

je viens de relire…
mais quel c*n !!!

je voulais absolument faire un 'SELECT'. (?!)
'mysql_affected_rows()' ne fonctionne pas avec 'SELECT', il faut utiliser 'mysql_num_rows()'. et il faut lui fournir la ressource en paramètre.
va savoir pourquoi alors que j'ai même collé le code de l' 'UPDATE'.

merci à toi et pardon pour la perte de temps.
0
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2
20 sept. 2007 à 11:16
Oui
Voilà exactement ce que je fais:


$requete="update user
set user_pass='$pass'
where user_log='$log'";
$execution=mysql_query($requete) or die ("probleme de requete");
$resultat= mysql_num_rows($execution);
if($resultat>0)
{
print("GOOD");
exit;
}
else
{
print("PROBLEM");
}


j'obtiens
Warning: mysql_num_rows(): supplied argument is not a valid MySQL-Link resource in /xxx/xxx/xxx.php on line 71
PRBLEM
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
20 sept. 2007 à 11:25
salut,

je vais essayer de me rattraper !!!
avec 'UPDATE' 'mysql_query()' renvoie directement le résultat de la réquête sous la forme "true/false".
donc tu peux faire ton test directement sur '$execution'.
$requete="update user
set user_pass='$pass'
where user_log='$log'";
$execution=mysql_query($requete) or die ("probleme de requete");
if($execution)
{
print("GOOD");
exit;
}
else
{
print("PROBLEM");
} 


0
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2
20 sept. 2007 à 11:45
Ok merci là je comprend maintenant .
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
20 sept. 2007 à 12:38
ça fonctionne ?
et encore désolé de t'avoir fait perdre du temps !

mea culpa, mea maxima culpa…
0
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2
8 oct. 2007 à 12:39
Oui ca marche
0