IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Requete mysql effectuée mais qui retourne false?


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 193
    Points : 68
    Points
    68
    Par défaut Requete mysql effectuée mais qui retourne false?
    Bonjour,

    J'ai un probleme un peu embetant, une requete mysql "UPDATE" faite depuis php avec mysql_query qui retourne false, mais la variable n'est pas booléenne, le gettype() donne NULL .
    Je ne comprends pas pourquoi d'autant qu'il n'y a pas d'erreur dans la formulation de la requete et que la requete est effectuée...?

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    Peux-tu poster ta requête ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 193
    Points : 68
    Points
    68
    Par défaut
    oui bien sur la voila:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update idees set notes=33 where idee=67
    je précise que la table "idees" existe bien sur la bdd, que la colonne notes existe bien de meme que idées, que l'enregistrement idee=67 existe bien, etc...

    Heu sauf que la mienne n'est pas en majuscules (le forum met les requetes mysql en maj automatiquement) mais ca ne change rien :o)

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    Je ne comprends pas bien comment il peut y avoir un gettype NULL sur une variable FALSE... tu nous montrerais le code où tu passes ta requête et où tu testes le type ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 193
    Points : 68
    Points
    68
    Par défaut
    merci pour ton aide Antoun. Je poste un bout de code demain (le code est assez long alors il faut que je le nettoie un peu pour ne garder que l'essentiel).
    En fait la variable n'est pas false (je me suis mal exprimé), c'est juste que if($var) n'est pas exécuté. Ce qui est normal si le gettype est NULL :o)

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    OK... j'en déduis que tu ne fais pas de or die ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var = mysql_query($sql)  or die(mysql_error()) ;

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 193
    Points : 68
    Points
    68
    Par défaut
    non je ne fais pas or die :o)
    Voila mes bouts de code, mais je ne pense pas que ca puisse t'etre tres utile...
    d'abord dans la classe connexion:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    function query($requete){
    $i=0;
    do {
    if ($i) usleep(50000);
    $i++;
    $ok=@mysql_query($requete,$this->link);
    } while (!$ok && ($i < 20));
    return $ok;
    }
     
     
    function change($vars,$table,$condition){
     
    if (!$this->select($table)) return false;
    $requete='update '.$table.' set '.$vars.' where '.$condition;
    if ($this->query($requete)){
    return true;
    } else {
    envoierreur('requete '.'"'.$requete.'" sur la base de donnees '.$this->db.' echouee',$this->err);
    return false;
    }
    }
    ou ici envoierreur me préviens qu'une erreur s'est produite et renvoie une page d'erreur a l'utilisateur, $this->select() se connecte a mysql et selectionne la base de données (sur mon hebergement chaque bdd est sur un serveur mysql différent :o( ) et voici le code appelé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $us->change("notes=".(10*max($a_moyennenous-1,0) +max($a_moyenne-1,0)),"idees","idee=".$idee)
    ou $us est un objet connexion , $a_moyenne et $a_moyennenous sont des nombres et $idee aussi.

  8. #8
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    Au moins pour tester, enlève le @ et ajoute le or die :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ok = mysql_query($requete,$this->link) or die(mysql_error($this->link));

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 193
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Antoun Voir le message
    Au moins pour tester, enlève le @ et ajoute le or die :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ok = mysql_query($requete,$this->link) or die(mysql_error($this->link));
    Bonjour Antoun,

    Merci pour ton aide. En fait j'ai changé le code php qui envoie la requete (mais la requete est tjs la même, ou bien j'ai revé) et ca marche. Je ne comprend pas trop ce qu'il se passait mais ca marche alors je n'ai pas fouillé plus loin (même si ca me démangeais)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête qui retourne false
    Par deathart dans le forum CodeIgniter
    Réponses: 0
    Dernier message: 07/05/2012, 20h45
  2. CoInitialize qui retourne false
    Par JeanNoel53 dans le forum C++Builder
    Réponses: 3
    Dernier message: 28/06/2010, 15h14
  3. l'équivalent de CF mais qui retourne plus qu'une résultat
    Par monpseudonom dans le forum Reports
    Réponses: 6
    Dernier message: 21/05/2009, 16h34
  4. Réponses: 2
    Dernier message: 14/04/2009, 08h35
  5. Requete MySql qui bloque. Probleme de table?
    Par Doberman dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/02/2006, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo