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

PHP & Base de données Discussion :

Requete qui retourne null [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut Requete qui retourne null
    Bonjour,

    quand j'execute cette requete sous php myadmin , j'ai bien des résultats

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT c.id_contact
    		FROM contact c 
    		WHERE 
    		 FROM_UNIXTIME( c.created , '%Y-%m-%d') = DATE_ADD(CURRENT_DATE,INTERVAL 0 DAY)  GROUP BY c.email
    Quand je suis sous php la requête me retourne rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $query = "SELECT c.id_contact
    		FROM contact c 
    		WHERE 
    		 FROM_UNIXTIME( c.created , '%Y-%m-%d') = DATE_ADD(CURRENT_DATE,INTERVAL 0 DAY)  GROUP BY c.email  ";
    	print $query;	
     
        $result = db_query($query);
        while ($data = db_fetch_object($result)) {
            $idcontact[] = $data->id_contact;
        }
        print_r($idcontact); exit;
    J'ai testé et il me semble qu'il n'apprecis pas la functon SQL FROM_UNIXTIME

    le champ c.created est en INT(11) sous phpmyadmin , je pense que le problème vient de là

    Merci pour votre aide

  2. #2
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    tu utilises quoi comme API SQL ? Tu n'as pas moyen d'afficher la dernière erreur SQL ? (ou tester $result qui devrait être à false s'il y a eu une erreur je pense) car je me demande si ce ne serait pas plutôt db_query() qui protégerait les % ou quelque chose de ce type qui ferait échouer la requête (en fait, c'est quoi qui retourne null ?).

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE_ADD(CURRENT_DATE,INTERVAL 0 DAY)
    Quel est l'intérêt d'ajouter 0 jour à la date courante ?

    Un GROUP BY n'a de sens qu'avec une fonction de groupage et vous n'en avez pas dans votre requête !

    D'ailleurs je ne vois pas du tout l'intérêt de faire un GROUP BY ici puisque vous chez des identifiants de contacts dans la table des contacts. Par définition, ces identifiants doivent y être uniques non ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut
    Citation Envoyé par Djakisback Voir le message
    Salut,
    tu utilises quoi comme API SQL ? Tu n'as pas moyen d'afficher la dernière erreur SQL ? (ou tester $result qui devrait être à false s'il y a eu une erreur je pense) car je me demande si ce ne serait pas plutôt db_query() qui protégerait les % ou quelque chose de ce type qui ferait échouer la requête (en fait, c'est quoi qui retourne null ?).
    J'utilise L'api Drupal

    C'est la requete qui ne retourne rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    mysqli_result Object
    (
        [current_field] => 0
        [field_count] => 1
        [lengths] => 
        [num_rows] => 0
        [type] => 0
    )
    alors que j'ai des résultats sur phpmyadmin

  5. #5
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Bon apparemment db_query échappe bien certains trucs du type : %d, etc.
    Tu peux tenter de les échapper avec % ce qui donne %%d : mais je n'en connais pas la liste exacte, peut-être que c'est juste le % finalement et non pas %d, %Y, etc., plus d'infos : http://drupal.org/node/989022

    (Sinon comme CinePhil, il me semble que ta requête peut être simplifiée.)

  6. #6
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut
    Citation Envoyé par Djakisback Voir le message
    Bon apparemment db_query échappe bien certains trucs du type : %d, etc.
    Tu peux tenter de les échapper avec % ce qui donne %%d : mais je n'en connais pas la liste exacte, peut-être que c'est juste le % finalement et non pas %d, %Y, etc., plus d'infos : http://drupal.org/node/989022

    (Sinon comme CinePhil, il me semble que ta requête peut être simplifiée.)
    Merci beaucoup , ça marche impec

    J'ai essayer avec des "\" les caractères d’échappement mais aucun resultat

    pour drupal c'est %

    Pour la requete c'est une tres longue requete que j'ai simplifié et oublié de supprimé le GROUP by sur le forum


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $query = "SELECT c.id_contact
    		FROM contact c 
    		WHERE 
    		 FROM_UNIXTIME( c.created , '%%Y-%%m-%%d') = DATE_ADD(CURRENT_DATE,INTERVAL 0 DAY)  GROUP BY c.email  ";
    	print $query;	
     
        $result = db_query($query);
        while ($data = db_fetch_object($result)) {
            $idcontact[] = $data->id_contact;
        }
        print_r($idcontact); exit;
    merci
    :-)

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/08/2007, 16h12
  2. Réponses: 10
    Dernier message: 28/07/2007, 15h53
  3. GetFont() qui retourne NULL
    Par aljattari dans le forum MFC
    Réponses: 3
    Dernier message: 27/04/2007, 21h06
  4. Réponses: 3
    Dernier message: 02/03/2007, 11h41
  5. Réponses: 16
    Dernier message: 04/09/2006, 10h27

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