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 :

probleme de requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut probleme de requête
    Bonjour
    J'ai deux tables :
    une table base_articles avec les champs id, référence, et designation
    une table photo avec les champs id, mot1, mot2, lien

    Je voudrais afficher une photo, pour celà il faut que je sélectionne le lien de la base photo correspondant à la désignation(de la base_articles) contenant mot1 et mot2(de la table photo);
    A savoir que designation ne contient pas seulement mot1 et mot2.

    Voici la requête que j'ai fait pour obtenir mon lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql2 = "SELECT * FROM photo, base_articles WHERE (base_articles.designation like concat('%',photo.mot1,'%') AND base_articles.designation like concat('%',photo.mot2,'%'))";
    $query = mysql_query($sql2) or mysql_error();
    $image=mysql_result($query,0,'lien');
    $fournisseur = "images/fournisseurs/".$image.".jpg";
    echo "<img  border=\"0\" src=\"$fournisseur\"> ";
    Mais je ne comprend pas mon image ne s'affiche pas et quand je fais un echo $image, rien ne s'affiche, merci

  2. #2
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Bonjour.
    Ton problème vient de l'utilisation de ta variable image. Tu dois lui spécifier quel champ tu veux. Je ferai plutôt cela moi :
    Citation Envoyé par zabdaniel Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql2 = "SELECT p.lien FROM photo as p, base_articles as b WHERE (base_articles.designation like concat('%',photo.mot1,'%') AND base_articles.designation like concat('%',photo.mot2,'%'))";
    $query = mysql_query($sql2) or mysql_error();
    $image=mysql_result($query);
    $fournisseur = "images/fournisseurs/".$image['lien'].".jpg";
    echo "<img  border=\"0\" src=\"$fournisseur\"> ";
    Mais je ne comprend pas mon image ne s'affiche pas et quand je fais un echo $image, rien ne s'affiche, merci
    Test cela et dis moi ce qu'il en est...
    doudouallemand

  3. #3
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Merci pour ton aide j'ai essayé mais ça ne marche pas, j'ai l'impression que c'est un problème de requête
    J'ai simplifié mon code ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    echo $data['DESIGNATION'];
    $sql2 = "SELECT * FROM photo WHERE ".$data['DESIGNATION']." LIKE concat('%',mot1,'%') AND ".$data['DESIGNATION']." LIKE concat('%',mot2,'%'))";
    $query = mysql_query($sql2) or mysql_error();
    echo "lien : " .$query['lien'];
    $image= $query['lien'];
    $fournisseur = "images/fournisseurs/".$image.".jpg";
     
    echo "<img  border=\"0\" src=\"$fournisseur\"> ";
    le problème c'est que mon $data['DESIGNATION'] est ok mais quand je met
    echo "lien : " .$query['lien'];
    j'obtiens simplement lien :
    donc mon $query['lien'] est nul si quelqu'un comprend pourquoi ? merci

  4. #4
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql2 = "SELECT * FROM photo WHERE ".$data['DESIGNATION']." LIKE concat('%',mot1,'%') AND ".$data['DESIGNATION']." LIKE concat('%',mot2,'%'))";
    $query = mysql_query($sql2) or mysql_error();
    Question surement idiote...
    Le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIKE concat('%',mot1,'%')
    équivaut-il à ???

    ensuite ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE ".$data['DESIGNATION']."
    est censé t'afficher quoi ??

  5. #5
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Oui je pense que celà revient au même en effet
    mon $data['designation'] m'affiche la désignation de l'article, mais ça c'est ok comme ça je n'ai plus à faire de jointures entre les deux tables, et je ne travaille plus que sur la table photo.

  6. #6
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Citation Envoyé par zabdaniel Voir le message
    Oui je pense que celà revient au même en effet
    mon $data['designation'] m'affiche la désignation de l'article, mais ça c'est ok comme ça je n'ai plus à faire de jointures entre les deux tables, et je ne travaille plus que sur la table photo.
    Tu veux dire par la que tu demande un truc genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    saucisson LIKE '%mot1%' ...
    ??

    Bah là c'est normal que ça marche pas lol

    Ensuite tu enregistre le chemin de l'image dans ta bdd ??

    Si c'est le cas j'ai le même problème sur mon forum et c'est relou...

  7. #7
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par zabdaniel Voir le message
    Merci pour ton aide j'ai essayé mais ça ne marche pas, j'ai l'impression que c'est un problème de requête
    J'ai simplifié mon code ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    echo $data['DESIGNATION'];
    $sql2 = "SELECT * FROM photo WHERE ".$data['DESIGNATION']." LIKE concat('%',mot1,'%') AND ".$data['DESIGNATION']." LIKE concat('%',mot2,'%'))";
    $query = mysql_query($sql2) or mysql_error();
    echo "lien : " .$query['lien'];
    $image= $query['lien'];
    $fournisseur = "images/fournisseurs/".$image.".jpg";
     
    echo "<img  border=\"0\" src=\"$fournisseur\"> ";
    le problème c'est que mon $data['DESIGNATION'] est ok mais quand je met
    echo "lien : " .$query['lien'];
    j'obtiens simplement lien :
    donc mon $query['lien'] est nul si quelqu'un comprend pourquoi ? merci
    ton code ne peut pas marcher car ta désignation ne fait pas partie de la table photo.
    J'ai oublié un truc tout à l'heure. Réessaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql2 = "SELECT p.lien FROM photo as p, base_articles as b WHERE ((b.designation like '%p.mot1%') AND (b.designation like '%p.mot2%'))";
    $query = mysql_query($sql2) or mysql_error();
    $image=mysql_result($query);
    $fournisseur = "images/fournisseurs/".$image['lien'].".jpg";
    echo "<img  border=\"0\" src=\"$fournisseur\"> ";

  8. #8
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    merci j'ai essayé et voici ce que me donne ma page :
    Wrong parameter count for mysql_result() in D:\Program Files\EasyPHP 2.0b1\www\aviatec\page_produit.php on line 423

    sachant que la ligna 423 correspond à : $image=mysql_result($query);

    mais j'ai esssayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql2 = "SELECT p.lien FROM photo as p, base_articles as b WHERE ((b.designation like '%p.mot1%') AND (b.designation like '%p.mot2%'))";
    $query = mysql_query($sql2) or mysql_error();
    $image=$query['lien'];
    $fournisseur = "images/fournisseurs/".$image.".jpg";
    echo "<img  border=\"0\" src=\"$fournisseur\"> ";
    et quand je fais un echo $image; rien n'apparait

  9. #9
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par Sekigawa Voir le message
    Tu veux dire par la que tu demande un truc genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    saucisson LIKE '%mot1%' ...
    ??

    Bah là c'est normal que ça marche pas lol

    Ensuite tu enregistre le chemin de l'image dans ta bdd ??

    Si c'est le cas j'ai le même problème sur mon forum et c'est relou...
    Tu sais comment faire alors ?

    non je n'enregistre pas le chemin de l'image dans ma bdd, je veux aller chercher ce lien pour l'afficher.
    J'ai deux tables :
    une table base_articles avec les champs id, référence, et designation
    une table photo avec les champs id, mot1, mot2, lien

    Je voudrais afficher une photo, pour celà il faut que je sélectionne le lien de la base photo correspondant à la désignation(de la base_articles) contenant mot1 et mot2(de la table photo);
    A savoir que designation ne contient pas seulement mot1 et mot2.

  10. #10
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Suis-je bête...
    1000 excuses , j'ai oublié une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql2 = "SELECT p.lien FROM photo as p, base_articles as b WHERE ((b.designation like '%p.mot1%') AND (b.designation like '%p.mot2%'))";
    $query = mysql_query($sql2) or mysql_error();
    $resultat=mysql_fetch_assoc($query);
    $fournisseur = "images/fournisseurs/".$image['lien'].".jpg";
    echo "<img  border=\"0\" src=\"$fournisseur\"> ";
    Voilà, tout devrez rentrer dans l'ordre, car mysql_result ne fait pas la même chose.
    doudouallemand

  11. #11
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par doudouallemand Voir le message
    Suis-je bête...
    1000 excuses , j'ai oublié une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql2 = "SELECT p.lien FROM photo as p, base_articles as b WHERE ((b.designation like '%p.mot1%') AND (b.designation like '%p.mot2%'))";
    $query = mysql_query($sql2) or mysql_error();
    $image=mysql_fetch_assoc($query);
    $fournisseur = "images/fournisseurs/".$image['lien'].".jpg";
    echo "<img  border=\"0\" src=\"$fournisseur\"> ";
    Voilà, tout devrez rentrer dans l'ordre, car mysql_result ne fait pas la même chose.
    doudouallemand
    c'est plutôt moi qui te remercie de revenir m'aider
    Donc merci je viens d'essayer mais ça ne marche pas et quand je fais un
    echo $image['lien']; rien ne s'affiche, j'ai l'impression que c'est ma requête qui n'est pas bonne nan ?

  12. #12
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Tu voudrai nous montrer la structure de tes tables ??

  13. #13
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par zabdaniel Voir le message
    rien ne s'affiche, j'ai l'impression que c'est ma requête qui n'est pas bonne nan ?
    pour éliminé les problèmes de requête, va dans ton phpmyadmin et execute la.
    Si cela te retourne le bon résultat, elle est ok, sinon, modifie la en faisant des essais.
    Ensuite, lorsque tu auras la bonne, tu pourras la remettre dans ton code php et nous dire ce que ca donne.

  14. #14
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par Sekigawa Voir le message
    Tu voudrai nous montrer la structure de tes tables ??

    La strucuture de mes tables :

    table base_articles
    les champs : id, référence, et designation

    table photo
    les champs : id, mot1, mot2, lien

  15. #15
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par doudouallemand Voir le message
    pour éliminé les problèmes de requête, va dans ton phpmyadmin et execute la.
    Si cela te retourne le bon résultat, elle est ok, sinon, modifie la en faisant des essais.
    Ensuite, lorsque tu auras la bonne, tu pourras la remettre dans ton code php et nous dire ce que ca donne.
    Merci
    c'est ce que j'avais fait en effet mais et donc je n'arrive pas à faire cette requête c'est d'ailleurs pour ça que j'ai posté ici...

  16. #16
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql2 = "SELECT lien FROM photo, base_articles WHERE base_articles.designation like '%mot1'%' AND base_articles.designation like '%mot2%'";
    $query = mysql_query($sql2) or mysql_error();
    $image=mysql_fetch_array($query);
    echo $image['lien'];
    Pour tester ^^

    Et franchement pk ne pas carément mettre une clé étrangère dans une des deux tables sa sera moins relou à faire une jointure...??

  17. #17
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    merci mais ça ne marche pas
    même sous php myadmin quand dans ma base je fais cette requête j'ai en retour : mysql n'a retourné aucun enregistrement

  18. #18
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par Sekigawa Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql2 = "SELECT lien FROM photo, base_articles WHERE base_articles.designation like '%mot1'%' AND base_articles.designation like '%mot2%'";
    $query = mysql_query($sql2) or mysql_error();
    $image=mysql_fetch_array($query);
    echo $image['lien'];
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT lien FROM photo, base_articles WHERE base_articles.designation like '%mot1%' AND base_articles.designation like '%mot2%'
    Et, c'est peut-être une question bête mais, tu remplaces bien "mot1" et "mot2" par des mots présent dans une de tes désignations dans la bdd ?

  19. #19
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par doudouallemand Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT lien FROM photo, base_articles WHERE base_articles.designation like '%mot1%' AND base_articles.designation like '%mot2%'
    Et, c'est peut-être une question bête mais, tu remplaces bien "mot1" et "mot2" par des mots présent dans une de tes désignations dans la bdd ?
    euh bennnn là je sens que je vais passer pour une abrutie finie mais non je ne remplace pas puisque je veux qu'il regarde quels sont les mots qui correspondent dans ma table.
    ainsi j'ai ma table photo avec mes champs : id, mot1, mot2 et lien
    et à l'intérieur : 1, chromate, green ,orcon
    2, zinc , yellow ,edel
    3,rouleau , 3m ,3m

    je veux que selon que dans ma désignation il y ait chromate et green, ou zinc et yellow, ou rouleau et 3m il me donne un $image égal à respectivement orcon, edel ou 3m

  20. #20
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    je te conseil de mettre une clé étrangère "id_designation" dans ta table photo et aprés tu mets tes conditions tu te prendras vraiment moins la tête...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [SQL-SERVER] Déconnecter user d'une BD probleme de requête
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 07/06/2006, 08h19
  2. Probleme avec requête Ajout dans VBA
    Par deglingo37 dans le forum Access
    Réponses: 1
    Dernier message: 26/05/2006, 11h49
  3. [MySQL] php probleme de requête sql
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 03/04/2006, 23h52
  4. [SQL] probleme de requête
    Par Le Rebel dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 15/02/2006, 11h52
  5. Probleme de requête SQL
    Par breizhoo dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/08/2005, 22h22

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