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

Langage PHP Discussion :

probléme de requete


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Par défaut probléme de requete
    Bonsoir,


    je suis en train de faire un moteur de recherche,mais je n'arrive pas a faire les jointures entre toute mes tables,quand je fais une recherche pour un jeu sa marche mais si je veux le faire pour autre chose sa ne marche pas,je vous met la requête

    merci pour l'aide apporté



    Code html : 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
     
    SELECT jeu,prix_jeu_neuf,lien_jeu_neuf,
    manga,prix_manga_neuf,lien_manga_neuf,console,prix_console_neuf,lien_console_neuf,
    figurine,prix_figurine_neuf,lien_figurine_neuf,dvd,prix_dvd_neuf,lien_dvd_neuf,blu_ray,prix_blu_ray_neuf,lien_blu_ray_neuf
     
     
    FROM jeu
    LEFT JOIN manga ON jeu.id  = manga.id
    LEFT JOIN figurine ON manga.id  = figurine.id
    LEFT JOIN console ON figurine.id  = console.id
    LEFT JOIN dvd ON console.id = dvd.id
    LEFT JOIN bluray ON dvd.id =  bluray.id
     
    WHERE 
    jeu LIKE :recherche OR manga  LIKE :recherche
    OR  figurine  LIKE :recherche OR  console LIKE :recherche OR dvd  LIKE :recherche OR blu_ray  LIKE :recherche');

  2. #2
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Tu fais une jointure sur des ids qui n'ont rien en commun...
    A moins que le mange Dragon Ball Z ait le même ID que le jeu Dragon Ball Z...
    Mais dans l'ensemble, si tu as un jeu d'ID 150 mais que tu n'as pas de manga d'ID 150 tu ne récupèreras pas le manga actuellement.

    Il faut prendre tous les enregistrements.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT jeu,prix_jeu_neuf,lien_jeu_neuf,
    manga,prix_manga_neuf,lien_manga_neuf,console,prix_console_neuf,lien_console_neuf,
    figurine,prix_figurine_neuf,lien_figurine_neuf,dvd,prix_dvd_neuf,lien_dvd_neuf,blu_ray,prix_blu_ray_neuf,lien_blu_ray_neuf
     
     
    FROM jeu, manga, figurine, console, dvd, bluray
     
    WHERE 
    jeu LIKE :recherche OR manga  LIKE :recherche
    OR  figurine  LIKE :recherche OR  console LIKE :recherche OR dvd  LIKE :recherche OR blu_ray  LIKE :recherche

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Par défaut
    merci pour la réponse mais le code fonctionne pas quand je teste dans phpmyadmin,je vais rajouter que mes tables sont séparés

  4. #4
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Les termes "ne fonctionne pas" sont à bannir du langage d'un développeur s'ils ne sont pas accompagné de plus d'explications.
    Un message d'erreur ? Aucune ligne retournée ?
    Car ce sont deux cas totalement différents et pour les deux on peut dire que cela ne fonctionne pas.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Par défaut
    Quand je fais le test sur phpmyamin la requête ne retourne pas la réponse et pourtant j'ai bien les données insérés dans la base que je demande

    ex: je cherche le jeu mafia 2 qui se trouve dans la bdd mais la requête ne la retourne pas ou le manga dragon ball de mêmes,il me dit qu'il n'a rien trouvé.J'aurais voulu vous donnez mes tables mais de
    1) je ne vois pas comment le faire.

    2) elle est trop longue car j'ai une table pour chaque donnée qui se trouve dans la requête .

    merci pour l'aide apporté

  6. #6
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Hum pas tiptop en fait ce que je t'avais proposé.
    Cela fonctionne bien mais ça renvoie pour chaque enregistrement du 1xN...

    Ceci sera mieux :
    J'ai pour mes tests fait deux tables (test1 et test2) contenant un champ int nommé champ.
    test1 : 1,2,3,4
    test2 : 4,5
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT `champ`, 'test1' as `table` FROM `test1` WHERE `test1`.`champ` >= 3
    UNION
    SELECT `champ`, 'test2' as `table` FROM `test2` WHERE `test2`.`champ` >= 3
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    champ 	table
    3 	test1
    4 	test1
    4 	test2
    5 	test2
    Après si tu as des tables qui n'ont pas le même nombre d'information à renvoyer il faudra que tu rajoutes des champs vides (à la manière de mon champ table) car UNION doit se faire sur le même nombre d'éléments.

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

Discussions similaires

  1. [EJBQL] Problème de requete
    Par rivierem dans le forum Java EE
    Réponses: 3
    Dernier message: 16/10/2004, 11h05
  2. Problème sous requete MySQL
    Par gavelin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 11h36
  3. Problème de Requete...
    Par sebiv dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/04/2004, 17h21
  4. Problème de requete avec Innodb
    Par silef dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/04/2004, 13h54
  5. Problème de requete multis-selections
    Par tripper.dim dans le forum SQL
    Réponses: 9
    Dernier message: 03/09/2003, 14h08

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