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 :

[MySQL] Problème requête


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut [MySQL] Problème requête
    Bonjour,

    J'ai un problème sur une requête.
    Je voudrai retourner la ligne de la langue sélectionner si elle est existe sinon la langue par défaut.

    Voici un aperçu des tables qui serves.

    Table page_rubrique
    id_pages srub
    4 0
    5 4


    Table page_contenue
    id_contenue id_page id_lang nom_pages
    1 4 1 blabla fr
    2 4 2 blabla Corse
    3 5 1 coucou FR


    Table langs
    id name dafalt
    1 Fançais 1
    2 Corse 0


    Voici la requête que j'ai pour le moment mais il me sort pas se que je veut :


    SELECT *
    FROM pages_rubriques AS R
    LEFT JOIN pages_contenus AS C ON (R.id_page = C.id_page AND C.id_lang = $id_lang)
    LEFT JOIN pages_contenus AS D ON (C.id_page IS NULL AND R.id_page = C.id_page AND D.id_lang = $id_lang_default)


    Je souhaiterai qu'il me sorte le contenue dans la langue 1 si il n'y a pas de langue 2 de la table.

    Merci

  2. #2
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Points : 82
    Points
    82
    Par défaut
    Salut adjaxio,

    Tu peux utiliser la commande CASE WHEN en sql pour tester si une valeur de langue t'as été retournée. En cas de valeur NULL tu renvois ta langue par défaut.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    Merci Cobalt59

    Peut tu m'aider un peut car je patauge et j'arrive vraiment pas a trouver la tournure de cette sataner requête ...
    Voici se que j'ai fait je vous poste le résultat de la requête aussi :
    Code : 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
    17
    SELECT *
    FROM pages_rubrique AS R
    LEFT JOIN pages_contenue AS C ON ( R.id_pages = C.id_page
    AND C.id_lang =1  ) ### Langue 1 defaut & Langue 2 autre
    LEFT JOIN pages_contenue AS D ON ( C.id_contenue IS NULL
    AND R.id_pages = C.id_page
    AND D.id_lang =1 )
    WHERE (
    srub =9
    )
    AND EXISTS (
     
    SELECT *
    FROM pages_contenue
    WHERE id_contenue = C.id_contenue
    )
    LIMIT 0 , 30
    Ce resultat est pour la langue par defaut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    id_pages 	srub 	accueil 	lang 	membre 	hors_menu 	ordre 	modules 	action 	hors_tout 	id_contenue 	id_page 	id_lang 	nom_pages 	titre_pages 	nom_rechercher 	contenue 	id_contenue 	id_page 	id_lang 	nom_pages 	titre_pages 	nom_rechercher 	contenue
    25 	9 	0 	  	0 	0 	3 	  	  	0 	30 	25 	1 	ryuruuyuytu 	  	ryuruuyuytu 	<p>tyyuu</p> 	NULL 	NULL 	NULL 	NULL 	NULL 	NULL 	NULL
    26 	9 	0 	  	0 	0 	4 	  	  	0 	32 	26 	1 	fr 	  	fr 	<p>fdf</p> 	NULL 	NULL 	NULL 	NULL 	NULL 	NULL 	NULL
    Celui la pour la langue autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    id_pages 	srub 	accueil 	lang 	membre 	hors_menu 	ordre 	modules 	action 	hors_tout 	id_contenue 	id_page 	id_lang 	nom_pages 	titre_pages 	nom_rechercher 	contenue 	id_contenue 	id_page 	id_lang 	nom_pages 	titre_pages 	nom_rechercher 	contenue
    25 	9 	0 	  	0 	0 	3 	  	  	0 	31 	25 	2 	qdsfdf 	  	qdsfdf 	<p>sdfsdfsdfsdf</p> 	NULL 	NULL 	NULL 	NULL 	NULL 	NULL 	NULL
    Merci

  4. #4
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Points : 82
    Points
    82
    Par défaut
    Sans vraiment connaître je vais essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT *,
    CASE RqtLang.id_lang WHEN RqtLang.id_lang IS NULL RETURN 
    (SELECT id_lang FROM langs l where dafalt='1')
     ELSE RqtLang.id_lang END
    FROM pages_rubrique AS R
    LEFT JOIN pages_contenue AS C ON ( R.id_pages = C.id_page),
    (SELECT * FROM langs l where l.id_lang=c.id_lang) as RqtLang
    Après sans pouvoir tester la requête je ne peux pas t'assurer que cela fonctionne parfaitement.

Discussions similaires

  1. [MySQL] MYSQL problème requéte toute simple
    Par wallain59 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/03/2011, 17h27
  2. Problème requête MySql & builder
    Par boopix dans le forum C++Builder
    Réponses: 19
    Dernier message: 09/03/2007, 02h04
  3. [MYSQL] Problèmes de requêtes...
    Par touriste13 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/05/2006, 09h25
  4. [BDD][Mysql] Problème récurant sur certaines requêtes
    Par citizen_yule dans le forum Requêtes
    Réponses: 3
    Dernier message: 11/04/2006, 22h22
  5. [MySQL] Problème de requête sur des dates
    Par dahu29 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2006, 13h08

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