Forums de la communauté francophone du CMS TYPO3: [Tesseract] Faire Une Boucle Dans Une Boucle - Forums de la communauté francophone du CMS TYPO3

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

[Tesseract] Faire Une Boucle Dans Une Boucle

#1 L'utilisateur est hors-ligne   alienlebarge 

  • Membre
  • PipPipPip
  • Groupe : Membres
  • Messages : 164
  • Inscrit(e) : 06-janvier 09

Posté 29 décembre 2011 à 13:51

Bonjour à tous,

Je suis en train de mettre en place un site de football dans lequel j'utilise Tesseract pour gérer les joueurs.

J'ai une extension (playermanagement) qui me permet de créer les tables nécessaire puis je fais l'affichage grâce à Tesseract.

En résumé j'aimerais faire un tableau avec la liste de mes joueur (tt_address). Chaque joueur a des caractéristiques (droitier, gaucher, rapide, lent, etc..) que j’aimerai également afficher dans ce tableau.

Mes joueurs se trouvent dans tt_address. Ensuite les charactristiques se trouve dans une table tx_playermanagement_characteristic avec une table m-m entre deux.

Ma data query est la suivante :
SELECT tt_address.uid, 
tt_address.first_name, 
tt_address.last_name, 
tt_address.email, 
tt_address.phone, 
tt_address.mobile, 
tt_address.address, 
tt_address.zip, 
tt_address.city, 
tt_address.title,

tt_address.tx_playermanagement_licensenumber,

tt_address_group.uid, 
tt_address_group.title,

clubformer.uid AS clubformer_uid,
clubformer.name AS clubformer_name,

clubowner.uid AS clubowner_uid,
clubowner.name AS clubowner_name,

tx_playermanagement_characteristic.uid AS characteristic_uid,
tx_playermanagement_characteristic.characteristic AS characteristic,

tx_playermanagement_fieldposition.uid AS characteristic_uid,
tx_playermanagement_fieldposition.position AS fieldposition

FROM tt_address

INNER JOIN tt_address_group_mm 
ON tt_address.uid=tt_address_group_mm.uid_local
INNER JOIN tt_address_group
ON tt_address_group_mm.uid_foreign=tt_address_group.uid

INNER JOIN tt_address_tx_playermanagement_clubformer_mm
ON tt_address.uid=tt_address_tx_playermanagement_clubformer_mm.uid_local
INNER JOIN tx_playermanagement_club AS clubformer
ON tt_address_tx_playermanagement_clubformer_mm.uid_foreign=clubformer.uid

INNER JOIN tt_address_tx_playermanagement_clubowner_mm
ON tt_address.uid=tt_address_tx_playermanagement_clubowner_mm.uid_local
INNER JOIN tx_playermanagement_club AS clubowner
ON tt_address_tx_playermanagement_clubowner_mm.uid_foreign=clubowner.uid

INNER JOIN tt_address_tx_playermanagement_characteristic_mm 
ON tt_address.uid=tt_address_tx_playermanagement_characteristic_mm.uid_local
INNER JOIN tx_playermanagement_characteristic
ON tt_address_tx_playermanagement_characteristic_mm.uid_foreign=tx_playermanagement_characteristic.uid

INNER JOIN tt_address_tx_playermanagement_fieldposition_mm 
ON tt_address.uid=tt_address_tx_playermanagement_fieldposition_mm.uid_local
INNER JOIN tx_playermanagement_fieldposition
ON tt_address_tx_playermanagement_fieldposition_mm.uid_foreign=tx_playermanagement_fieldposition.uid


Mon data consumer est le suivant :
<table>
  <thead>  
	<tr>
  	<th>Prenom</th>
  	<th>Nom</th>
  	<th>N. de passeport</th>
  	<th>Club formateur</th>
  	<th>Club ACVF</th>
  	<th>Caracteristique</th>
	</tr>
  </thead>
  <tfoot>
	<tr>
  	<td>Nbr. de joueur</td>
  	<td>###TOTAL_RECORDS###</td>
  	<td></td>
  	<td></td>
  	<td></td>
  	<td></td>
	</tr>
  </tfoot>
  <!--LOOP(tt_address)-->
  <tr>
	<td>###FIELD.first_name###</td>
	<td>###FIELD.last_name###</td>
	<td>###FIELD.licencenumber###</td>
	<td><!--LOOP(clubformer)-->###FIELD.clubformer###<!--ENDLOOP--></td>
	<td><!--LOOP(clubowner)-->###FIELD.clubowner###<!--ENDLOOP--></td>
	<td><!--LOOP(tx_playermanagement_characteristic)-->###FIELD.characteristic###<!--ENDLOOP--></td>
  </tr>
  <!--ENDLOOP--> 
</table>


donc j'ai un boucle sur la table tt_address pour afficher les la liste des joueur. Puis j'aimerais faire une boucle dans la table tx_playermanagement_characteristic pour chaque joueur.

Mais voilà rien ne s'affiche.

Est-ce que qqun peut m'aider ?
Est-ce qu'il faut passer par deux data query ?
0

#2 L'utilisateur est hors-ligne   alienlebarge 

  • Membre
  • PipPipPip
  • Groupe : Membres
  • Messages : 164
  • Inscrit(e) : 06-janvier 09

Posté 29 décembre 2011 à 13:54

le lien pour ceux qui veulent voir : http://www.mjor.ch/index.php?id=154
0

#3 L'utilisateur est hors-ligne   alienlebarge 

  • Membre
  • PipPipPip
  • Groupe : Membres
  • Messages : 164
  • Inscrit(e) : 06-janvier 09

Posté 11 janvier 2012 à 09:52

Après investigation, j'ai en problème de substructure qui ne se renseigne pas.

J'ai simplifié la chose afin de juste faire le lien entre deux tables et ça coince toujours.
Ma substrucuture est vide :(

Image IPB

Voici ma query qui passe dans PHPMyAdmin

SELECT 	player.uid, 
player.first_name, 
player.last_name, 
player.email, 
player.phone, 
player.mobile, 
player.address, 
player.zip, 
player.city, 
player.title,
clubformer.uid AS clubformer_uid,
clubformer.name AS clubformer_name
FROM tt_address AS player
LEFT JOIN tt_address_tx_playermanagement_clubformer_mm AS clubformer_mm
ON player.uid=clubformer_mm.uid_local
LEFT JOIN tx_playermanagement_club AS clubformer
ON clubformer_mm.uid_foreign=clubformer.uid
WHERE  player.pid = 5
AND player.deleted = 0
AND player.hidden = 0

Ce message a été modifié par alienlebarge - 11 janvier 2012 à 10:01.

0

#4 L'utilisateur est hors-ligne   fsuter 

  • Nouveau
  • Pip
  • Groupe : Membres
  • Messages : 46
  • Inscrit(e) : 01-septembre 04

Posté 03 février 2012 à 08:34

Salut,

Je ne découvre ton message que tardivement, désolé. Je pense que le problème vient du fait que tu n'as pas explicitement de colonne "uid" pour la table tx_playermanagement_club dans ta requête. En effet, tu fais

 clubformer.uid AS clubformer_uid


ce qui fait qu'ensuite, dataquery ne trouve pas d'uid pour cette table et ne peut donc pas faire de sous-structure. Essaye plutôt de laisser simplement

 clubformer.uid


que dataquery transformera automatiquement en

 clubformer.uid AS clubformer$uid


dans la requête et qui lui permet de retrouver ses petits après coup.

Ce message a été modifié par fsuter - 03 février 2012 à 08:34.

0

#5 L'utilisateur est hors-ligne   alienlebarge 

  • Membre
  • PipPipPip
  • Groupe : Membres
  • Messages : 164
  • Inscrit(e) : 06-janvier 09

Posté 03 février 2012 à 11:09

Magnifique !!!!

Merci, c'était ça ...
Je vais avancer maintenant ;)
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)