Problème de requete

Résolu
pontarose -  
pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   -
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)
{

}
Configuration: Windows XP
Firefox 2.0.0.6

12 réponses

  1. vignemail1 Messages postés 1262 Statut Contributeur 259
     
    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
  2. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    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
  3. pontarose
     
    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
  4. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pontarose
     
    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
  7. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    et tu lui donnes bien "$execution" comme paramètre ?
    0
  8. vignemail1 Messages postés 1262 Statut Contributeur 259
     
    0
    1. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
       
      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
  9. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
     
    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
  10. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    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
  11. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
     
    Ok merci là je comprend maintenant .
    0
  12. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    ça fonctionne ?
    et encore désolé de t'avoir fait perdre du temps !

    mea culpa, mea maxima culpa…
    0
  13. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
     
    Oui ca marche
    0