Categories > TinyButStrong general (FR) >

Requetes Imbriquees

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: cgeourjon
Date: 2010-10-04
Time: 08:47

Requetes Imbriquees

Bonjour,
autre question. J'ai besoin de faire 2 requetes imbriquées dont un parametre de la premiere est nécessaire pour la 2e requete. comment faire ?
Je suis obligé d'avoir les 2 requetes séparées et pas de jointure supplementaire.
J'avais trouvé un exemple sur Internet mais qui n'a pas l'air de marcher.

Pour info, j'utilise la derniere version téléchargée.

Merci d'avance.
By: Skrol29
Date: 2010-10-04
Time: 09:37

Re: Requetes Imbriquees

Bonjour,
Peux-tu donner plus de précision ? Un exemple?  Je ne vois as ce que tu entends par "requêtes imbriquées".
By: cgeourjon
Date: 2010-10-04
Time: 10:30

Re: Requetes Imbriquees

En fait c'est simple, mon site est erreursdefilms.com.

Pour la page voir_toperr.php, j'affiche via une requete la liste des films (en recuperant le titre, l'année et le nb d'erreurs via un count). Ceci se fait dans un block qui se repete.
A l'interieur POUR CHAQUE FILM, j'ai besoin de recuperer l'ID du film et donc de lister les acteurs via une 2e requete par rapport à l'ID du film qui vient de la premiere requete.

En jointure, c'est l'usine donc je veux faire 2 requetes séparées.

By: Skrol29
Date: 2010-10-04
Time: 11:06

Re: Requetes Imbriquees

Salut,

D'abord j'en profite pour te dire que je trouve ton site une excellente idée, j'adore pointer les erreurs dans les films et ça n'enlève rien à l'œuvre ni au plaisir de les regarder. Ca rappel aussi que faire un film de façon impeccable c'est super dur. Je ne manquerai pas d'essayer de compléter ta base d'information :)

Pour ton problème il y a plusieurs solutions.

La solution classique pour TBS c'est d'utiliser un sous-bloc. Ils sont justement faire pour faire des fusions avec une sous-requête liée à une requête principale.
Documentation sur les sous-blocs avec requête dynamique : http://www.tinybutstrong.com/fr/manual.php#html_block_dynsb
Exemples de sous-blocs : http://www.tinybutstrong.com/fr/examples.php
Bien sûr cette solution peut s'avérer couteuse en perf si on l'utilise un peu brutalement car elle demande à MySQL d'exécuter autant de fois la sous-requête qu'il y a de lignes retournée par la requête principale.

Sinon, pour cette page en particulier, tu peux peut être profiter de la fonction GROUP_CONCAT() de MySQL qui justement permettrait de concaténer les acteurs pour chaque film.
By: cgeourjon
Date: 2010-10-04
Time: 11:35

Re: Requetes Imbriquees

Je vais essayer ca.
Merci.
By: cgeourjon
Date: 2010-10-06
Time: 14:25

Re: Requetes Imbriquees

C'est bon ca marche.
C'est quand meme puissant.
Le remplacement d'une une page PHP en page PHP avec template simplifie fortement le code il y a pas photo.
Ancien PHP : 150 lignes
Nouveau PHP : 15 lignes + 60 lignes PHP.

Merci