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

Requêtes MySQL Discussion :

Probleme SQL


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    chasseur de mamouth
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chasseur de mamouth
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Probleme SQL
    Bonjour à tous,
    Voilà j'ai passé une jolie partie de toute la journée en train de me torturer l'esprit a essayer de trouver une bonne requête à mon problème.
    Si vous pouviez donner de vos conseils ce serais pas de refus.

    Je vous explique.

    J'ai "produits" qui est une table et qui contient les lignes:
    id_produit / date_arrivee / date_depart /id_salle

    et une autre table "salles" qui contient:
    id_salle / photo / ville /etat

    et j'essaie de trouver la solution à la question qui me semble être l'Evrest aujourd'hui pour moi (je suis novice ):
    Comment faire pour que, lorsque je suis sur la fiche d'un produit (où il y a un _GET dans l'URL, comme par exemple: reservation_details.php?id_produit=33 pour faire un code qui lorsque je suis sur cette page puisse présenter d'autre produits du même lieu (ville) sans que celui sur lequel je suis soit repris en compte?

    J'ai tester bcp de code et voici le dernier que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT p.id_produit, s.photo
    	FROM produits p, salles s
    	WHERE p.id_salle IN(
    		SELECT id_salle FROM salles WHERE ville IN(
    			SELECT ville FROM salles WHERE id_salle IN (
    				SELECT id_salle FROM produits WHERE id_produit='.$_GET[id_produit].')))
    AND WHERE id_produit <> '.$_GET[id_produit].'
    AND p.etat = 1
    ORDER BY p.date_arrivee
    Bien sûr avec le: AND WHERE id_produit <> '.$_GET[id_produit].' j'ai une erreur SQL mais comme j’essaie d'exclure le produit... je ne sais pas quoi faire...
    Lorsque j'enlève " AND WHERE id_produit <> '.$_GET[id_produit].' " Le produit sur lequel je suis apparait encore et d'autres qui ne sont pas de la même ville... bref mon code est nul et je suis perdu alors que cela doit être finalement assez simple...
    Qu'en dites vous?
    Merci de vos aides.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,


    vous n'êtes pas loin de la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    select p.id_produit, s.photo
    from produits p
    inner join salles s on p.id_salle = p.id_salle
    where p.id_produit <> "produit_selectionne" 
    and exists 
     (select 1 from salles s2 
     inner join produits p2 on s2.id_salle = p2.id_salle
     where s2.ville = s.ville and p2.id_produit = "produit_selectionne")

  3. #3
    Candidat au Club
    Homme Profil pro
    chasseur de mamouth
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chasseur de mamouth
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Merci Punkoff pour ta réponse,
    Ton code est bien et je te remercie bcp mais le produit sur laquelle le _GET est reviens encore et les autres produits peuvent revenir plusieurs fois dans les résultats...
    c'est un véritable casse tete!
    comment exclure de mes réponses?? je pourrais sans doute le faire avec PHP...
    Aussi il faudrait que je puisse mettre les produit qui sont à - de 7 jours de la date d'arrivée... mais c'est un autre probleme.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 116
    Points : 55
    Points
    55
    Par défaut
    Si tu as des doublons tu peux utiliser

    SELECT DISTINCT(champ)
    ou alors faire un GROUP BY apres le WHERE

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Citation Envoyé par PhilHype Voir le message
    Merci Punkoff pour ta réponse,
    Ton code est bien et je te remercie bcp mais le produit sur laquelle le _GET est reviens encore et les autres produits peuvent revenir plusieurs fois dans les résultats...
    c'est un véritable casse tete!
    comment exclure de mes réponses?? je pourrais sans doute le faire avec PHP...
    Aussi il faudrait que je puisse mettre les produit qui sont à - de 7 jours de la date d'arrivée... mais c'est un autre probleme.
    rien compris.
    Exprimez-vous clairement, et illustrez avec un exemple, sans code php si possible.

  6. #6
    Candidat au Club
    Homme Profil pro
    chasseur de mamouth
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chasseur de mamouth
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Re punkoff,
    je vais essayé d'exprimer le résultat plus clairement:

    résultat de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT *
    FROM produits p
    INNER JOIN salles s ON p.id_salle = p.id_salle
    WHERE p.id_produit <> '.$_GET[id_produit].' 
    AND EXISTS 
     (SELECT 1 FROM salles s2 
     INNER JOIN produits p2 ON s2.id_salle = p2.id_salle
     WHERE s2.ville = s.ville AND p2.id_produit = '.$_GET[id_produit].')
    GROUP BY 
    AND p.etat = 1
    ORDER BY p.date_arrivee 
    LIMIT 0,3;

    = les produits affichés peuvent être en doublons ou l' id_produit du _GET est aussi pris en compte (affiché).

  7. #7
    Candidat au Club
    Homme Profil pro
    chasseur de mamouth
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chasseur de mamouth
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Personne ne peux m'aider sur ce probleme qui pourrais etre simple ? lol

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    l' id_produit du _GET est aussi pris en compte (affiché)
    J'ai du mal à y croire si vous exécutez la requête présentée, ou alors votre variable est null.


    les produits affichés peuvent être en doublons
    niveau MCD qu'elle est la relation entre l'entité produit et l'entité salle ?

    Au niveau du select quelle colonne de quelle table cherchez vous à avoir ?

  9. #9
    Candidat au Club
    Homme Profil pro
    chasseur de mamouth
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chasseur de mamouth
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    Merci encore punkoff de ton aide, en faite je n'avais pas vu un petite faute d'inattention sur p.id_salle = p.id_salle le s. manquait.
    En tout cas un grand merci a toi!

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

Discussions similaires

  1. Probleme SQL prepareStatement JAVA
    Par grizzz dans le forum Langage SQL
    Réponses: 12
    Dernier message: 05/08/2005, 11h29
  2. Probleme sql sous asp
    Par berrada dans le forum ASP
    Réponses: 9
    Dernier message: 02/08/2005, 16h48
  3. Petit probleme sql
    Par maxxou dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/03/2005, 11h49
  4. probleme SQL pour expert
    Par murlock7 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 16/12/2004, 11h24
  5. probleme sql avec delphi
    Par lil_jam63 dans le forum Bases de données
    Réponses: 7
    Dernier message: 25/02/2004, 04h32

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