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 sur mon Select MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut Erreur sur mon Select MySQL
    Bonjour,

    Voici mon petit problème :

    AVANT, Je faisais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $rsinterbanner = mysql_query("SELECT DISTINCT icb.id_banners FROM inter_cat_banner icb INNER JOIN banners b ON icb.id_banners=b.id_banners WHERE icb.id_categories = $cat AND icb.status = 'yes' AND icb.del = 'no' AND b.status = 'yes' AND b.del = 'no' AND b.display_type = 'h' AND b.how_much_now > 0 ORDER BY rand()")or exit(mysql_error());
     
    $count = mysql_num_rows($rsinterbanner);
    Et tout fonctionnait correctement sans erreur.

    J'ai du rajouter une condition dans ma requète : AND b.banner_".$lg_ban." != ''

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $rsinterbanner = mysql_query("SELECT DISTINCT icb.id_banners FROM inter_cat_banner icb INNER JOIN banners b ON icb.id_banners=b.id_banners WHERE icb.id_categories = $cat AND icb.status = 'yes' AND icb.del = 'no' AND b.status = 'yes' AND b.del = 'no' AND b.display_type = 'h' AND b.how_much_now > 0 AND b.banner_".$lg_ban." != '' ORDER BY rand()")or exit(mysql_error());
     
    $count = mysql_num_rows($rsinterbanner);
    Maintenant, j'ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource  in ...
    Je n'ai alors plus utiliser mysql_num_rows() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $rsinterbanner = mysql_query("SELECT DISTINCT icb.id_banners FROM inter_cat_banner icb INNER JOIN banners b ON icb.id_banners=b.id_banners WHERE icb.id_categories = $cat AND icb.status = 'yes' AND icb.del = 'no' AND b.status = 'yes' AND b.del = 'no' AND b.display_type = 'h' AND b.how_much_now > 0 AND b.banner_".$lg_ban." != '' ORDER BY rand()")or exit(mysql_error());
     
    $count = 0;
    while ($rs_interbanner = mysql_fetch_array($rsinterbanner)) 
    {
    	$count++;
    }
    Mais toujours une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...

    Pourtant, je ne comprends pas, j'ai testé ma requête dans PhpMyAdmin, il n'y a pas d'erreur, elle fonctionnne mais ne me renvoie pas de ligne.

    Aurriez-vous une idée du problème ?

    Merci d'avance !
    The Molo

  2. #2
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    il y a surement un problème de syntaxe dans ta requête. Surement au niveau de la variable $lg_ban

    essaye d'afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "SELECT DISTINCT icb.id_banners FROM inter_cat_banner icb INNER JOIN banners b ON icb.id_banners=b.id_banners WHERE icb.id_categories = $cat AND icb.status = 'yes' AND icb.del = 'no' AND b.status = 'yes' AND b.del = 'no' AND b.display_type = 'h' AND b.how_much_now > 0 AND b.banner_".$lg_ban." != '' ORDER BY rand()";
    pour voir ce que ça affiche
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  3. #3
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut
    Je l'ai déjà fait.

    Avec le résultat de l'echo, je lance cette requête dans PhpMyAdmin et je n'ai aucune erreur... Elle ne me renvoie aucune ligne mais c'est normal vu que je les éléments dans la bd ne répondent pas à la requête.

    Je ne comprends vraiment pas pourquoi... ??
    The Molo

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    bizarre, vous avez dit bizarre ?
    Et en faisant ça en deux lignes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = "SELECT DISTINCT icb.id_banners FROM inter_cat_banner icb INNER JOIN banners b ON icb.id_banners=b.id_banners WHERE icb.id_categories = $cat AND icb.status = 'yes' AND icb.del = 'no' AND b.status = 'yes' AND b.del = 'no' AND b.display_type = 'h' AND b.how_much_now > 0 AND b.banner_".$lg_ban." != '' ORDER BY rand()";
    $rsinterbanner = mysql_query($req)or exit('erreur sur '.$req.'<br/>'.mysql_error());
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 669
    Points : 5 238
    Points
    5 238
    Par défaut
    b.banner_".$lg_ban." != ''
    Je ne pense pas que != soit valide en SQL !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Points : 47
    Points
    47
    Par défaut
    != est un équivalent de <>.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 125
    Points : 149
    Points
    149
    Par défaut
    Essaie de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND b.banner_".$lg_ban." <> ''

  8. #8
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut
    Merci de vos réponses !

    J'ai testé en deux lignes et aussi avec <> à la place de != mais j'ai toujours le message d'erreur...
    The Molo

  9. #9
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 669
    Points : 5 238
    Points
    5 238
    Par défaut
    Citation Envoyé par ddong Voir le message
    != est un équivalent de <>.
    Sur quel type de base de données ? Pas sur MySQL en tout cas !

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce qui est tres étrange c'est que si la requete ne pouvait pas etre executée, on tomberait en "exit".
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ce qui est tres étrange c'est que si la requete ne pouvait pas etre executée, on tomberait en "exit".
    +1

    Question : à quel état est l'affichage d'erreurs de php ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  12. #12
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut
    Si si, je suis sous MySQL (PhpMyAdmin)...

    Tout s'affiche correctement, mais le message d'erreur s'affiche juste au dessus de la bannière (c'est un traitement pour la gestion de bannière)
    The Molo

  13. #13
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut
    Que voulez-vous dire par "à quel état..." ?
    The Molo

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Quelles erreurs renvoie ton serveur php ? Par exemple, si ton serveur est configuré à ERROR, on est peut-être en train de passer à côté d'une erreur syntaxique de php...
    http://fr.php.net/manual/fr/errorfun...rror-reporting
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par popo Voir le message
    Sur quel type de base de données ? Pas sur MySQL en tout cas !
    Sisi : http://dev.mysql.com/doc/refman/5.0/...ator_not-equal

  16. #16
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut
    Comment puis-je voir cela ?

    Je ne vois pas comment faire...

    Pouvez-vous me donner un exemple ?

    Merci.
    The Molo

  17. #17
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Salut,

    essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $sql = "SELECT DISTINCT icb.id_banners FROM inter_cat_banner icb INNER JOIN banners b ON icb.id_banners=b.id_banners WHERE icb.id_categories = $cat AND icb.status = 'yes' AND icb.del = 'no' AND b.status = 'yes' AND b.del = 'no' AND b.display_type = 'h' AND b.how_much_now > 0 AND b.banner_".$lg_ban." != '' ORDER BY rand()";
     
    echo $sql;
     
    $rsinterbanner = mysql_query($sql)or exit(mysql_error());
     
    $count = mysql_num_rows($rsinterbanner);
    copie la requête et teste la directement sur ta Db. Si le résultat est satisfaisant, l'erreur ne provient pas du code que tu nous a donné...

    vois plus en amont...

  18. #18
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Pour voir le niveau d'erreurs, il faut consulter la valeur error_reporting dans le php.ini. En phase de développement, l'idéal est de le mettre à E_ALL.

    Sinon, j'aurais tendance à plussoyer defcon_duny. Si la requête fonctionne dans phpmyadmin, c'est que l'erreur vient d'ailleurs...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 125
    Points : 149
    Points
    149
    Par défaut
    T'as débugger pour voir ce que contenait $lg_ban ?
    C'est peut-être une erreur de ce type

Discussions similaires

  1. Message d'Erreur sur mon Terminal
    Par highdata dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/06/2007, 21h44
  2. Resultat vide sur un select MySQL.
    Par Delphi-ne dans le forum Bases de données
    Réponses: 9
    Dernier message: 02/12/2006, 18h46
  3. [MySQL] Erreur sur un select
    Par Hayato dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2006, 12h08
  4. (urgent) Erreur dans mon select à cause du NOT IN
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/11/2005, 20h28
  5. Paramétrer le nombre de connexion sur mon serveur Mysql
    Par Zerga dans le forum Installation
    Réponses: 2
    Dernier message: 12/12/2003, 19h21

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