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 :

Erreur Like, count(*) dans un et pas l'autre server [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut Erreur Like, count(*) dans un et pas l'autre server
    Bonjour.

    Dans un serveur, j'ai cette erreur ci (LAMP):
    Fatal error: Call to a member function fetch_array() on a non-object

    le code concerné est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $resultat=$connexion->query("SELECT count(*) FROM ".constant('BDD').".`ori_images` WHERE `desc` LIKE '%$rech%' AND `cat` LIKE '%$cat%'");
    $nb_total = $resultat->fetch_array();
    Et dans un autre, aucune erreur (WAMP)

    ça semble être le LIKE quand je le mets pour deux.

  2. #2
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut DESC
    Bonjour,

    en ayant vu ton code la première fois j'ai cru voir une erreur avec 'desc' qui ressemble étrangement à desc pour désigner le tri par ordre décroissant mais qui semblerait être un élément de ta table. Aussi est ce que LAMP ne prendrait pas en compte les quotes et du coup verrait desc comme une erreur?

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 80
    Points : 169
    Points
    169
    Par défaut
    Bonjour,

    vous devriez séparer la construction de la requête de son exécution et l'afficher pour l'exécuter dans un requeteur (mysql en ligne de commande ou phpmyadmin).
    Cela vous permettrait d'éliminer la piste d'une erreur de requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query = "SELECT count(*) FROM ".constant('BDD').".`ori_images` WHERE `desc` LIKE '%$rech%' AND `cat` LIKE '%$cat%'";
    echo $query;die();
    $resultat=$connexion->query($query);
    $nb_total = $resultat->fetch_array();
    Par ailleurs, vous semblez utiliser mysqli, donc vous devriez tester le résultat de votre requete (qui ici doit être false) et voir quel est le message d'erreur (avec $connexion->error()).

    enfin, vous devriez échapper vos chaines de caractères avec real_escape_string.

    HTH.

  4. #4
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Retrokiller069, "desc" est un champs dans ma base qui porte ce nom. C'est bien possible pour les Quotes, je vais faire le test.

    à '%rech%' et '%cat%', j'ai enlevé les ' et ', ça me donne la même chose au deux.

    Si j'enlève tout à partir de WHERE ça donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT count(*) FROM ori_images
    Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in
    Agnello Fabrice, l'erreur est différente écrit de cette manière et je l'ai sur les deux serveurs cette fois. C'est mysqli que j'utilise.

    C'est l'erreur que ça indique sans autre détail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT count(*) FROM coop_coop.`ori_images` WHERE `desc` LIKE '%%' AND `cat` LIKE '%%'
    Merci pour vos interventions; c'est apprécié.

    Citation Envoyé par Agnello Fabrice Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query = "SELECT count(*) FROM ".constant('BDD').".`ori_images` WHERE `desc` LIKE '%$rech%' AND `cat` LIKE '%$cat%'";
    echo $query;die();
    $resultat=$connexion->query($query);
    $nb_total = $resultat->fetch_array();
    HTH.

  5. #5
    Membre averti
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Points : 304
    Points
    304
    Par défaut
    Sans précisions sur la version de MySQL :
    * 3 / 4.0 / 4.1 : http://dev.mysql.com/doc/refman/4.1/...ved-words.html
    * 5.0 : http://dev.mysql.com/doc/refman/5.0/...ved-words.html
    * 5.1 : http://dev.mysql.com/doc/refman/5.1/...ved-words.html
    * 5.5 : http://dev.mysql.com/doc/refman/5.5/...ved-words.html
    * 5.6 : http://dev.mysql.com/doc/refman/5.6/...ved-words.html

    En clair, "desc" est un mot réservé, et il faut donc éviter de l'utiliser ...

  6. #6
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par bhamp0 Voir le message
    Sans précisions sur la version de MySQL :
    * 3 / 4.0 / 4.1 : http://dev.mysql.com/doc/refman/4.1/...ved-words.html
    * 5.0 : http://dev.mysql.com/doc/refman/5.0/...ved-words.html
    * 5.1 : http://dev.mysql.com/doc/refman/5.1/...ved-words.html
    * 5.5 : http://dev.mysql.com/doc/refman/5.5/...ved-words.html
    * 5.6 : http://dev.mysql.com/doc/refman/5.6/...ved-words.html

    En clair, "desc" est un mot réservé, et il faut donc éviter de l'utiliser ...
    C'est la version PHP Version 5.2.12, je l'utilise ailleurs et je n'ai pas de problème. Mais, je vais essayer de changer ça pour un autre champs.

    mysql : Client API version 5.0.92

    J'ai tout même supprimer tout ce qui suit après WHERE sans utiliser le champs DESC et j'obtiens l'erreur quand même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in
    en mettant juste ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query = "SELECT count(*) FROM ori_images ";
    echo $query;
    $resultat=$connexion->query($query);
    $nb_total = $resultat->fetch_array();

  7. #7
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Merci pour vos interventions. ça me remets en lumière des détails que je devrait tenir compte.

    Pour mon problème, c'était dû à un champ qui manquait qui s'appelait "cat" voulant dire catégories.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/01/2011, 15h04
  2. [XL-2007] OUTLINE : Ne développer qu'un sous niveau dans un groupe pas les autres
    Par ESVBA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2010, 18h22
  3. Erreur de syntaxe dans mon code (pas facile à trouver)
    Par beegees dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/01/2010, 08h42
  4. erreur sql sous certains pc et pas d'autres
    Par Mandarine dans le forum Accès aux données
    Réponses: 6
    Dernier message: 30/12/2009, 21h17

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