Bonjour,

J'utilise smarty pour développer une petite application pour un ami. Dans cette application, j'ai une table contenant une liste de clubs de badminton, et une autre table contenant des joueurs faisant parti d'un club.

Mon problème est que lorsque je liste les joueurs d'un clubs, ces mêmes joueurs apparaissent sur les autres clubs également.

Exemple :
Club : toto id 1
Club : tata id 2

Joueur : joe id 1 club_id 1
Joueur : jeanne id 2 club_id 2

A la sortie j'ai :
Club toto : joe
Club tata : joe, jeanne (alors que je ne devrai avoir que jeanne)

Voilà une partie de ma classe, mon php et mon tpl :
Classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
/**
		 * Récupère la liste des contacts d'un club
		 * @name getContacts
		 * 
		 * @param String $x -> id du club
		 * 
		 * @return $result
		 */
		public function getContacts($x) {
			$result = cConnection::Connect()->query("SELECT * FROM Joueurs WHERE Clubs_idClubs='$x'");
			return $result;
		}
Code php :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/* récupération des clubs */
	try {
		$result = new cClubs();
		$tmp = $result->getClubs();
		$class = 1;
		$addclass = "";
 
		while ( $row = $tmp->fetch(PDO::FETCH_ASSOC) ) {
			if (empty($row['telClubs']) || $row['telClubs'] == "0") $tel = "0000000000";
			if (empty($row['emailClubs'])) $email = "nomail";
			$dptresult = cTools::getDptName($row['dptClubs']);
			$tmp2 = $dptresult->fetch(PDO::FETCH_NUM);
			$dpt = $tmp2[0];
 
			/* récupération de la liste des contacts du club */
			//$resultx = new cClubs();
			$tmp3 = $result->getContacts($row['idClubs']);
			while ($row3 = $tmp3->fetch(PDO::FETCH_ASSOC)) {
				$contresult = cTools::getContactsName($row3['Contacts_idContacts']);
				$tmp4 = $contresult->fetch(PDO::FETCH_NUM);
				$type = $tmp4[0];
 
				if (empty($row3['avatar'])) $avatar = 'defaut.png';
 
				$contacts[] = array (
					'fixe' => $row3['fixeJoueurs'],
					'gsm' => $row3['mobileJoueurs'],
					'email' => $row3['emailJoueurs'],
					'nom' => strtoupper($row3['nomJoueurs']),
					'prenom' => strtoupper($row3['prenomJoueurs']),
					'avatar' => $avatar,
					'type' => $type
				);
			}
 
			$clubs[] = array (
				'class' => 'class' . $class . ' ' . $addclass,
				'id' => $row['numClubs'],
				'nom' => $row['nomClubs'],
				'address' => $row['addresseClubs'],
				'cp' => $row['cpClubs'],
				'tel' => $tel,
				'email' => $email,
				'ville' => $row['villeClubs'],
				'dpt' => $dpt,
				'cont' => $contacts
			);
			$addclass = "";
			if ($class == 1) $class = $class + 1;
			else $class = $class - 1;
		}
 
		$template->assign('CLUBS', $clubs);
		$result = null;
 
	} catch (PDOException $e) {
		$template->assign('ERR','ERR: '.$e->getMessage());
		$template->display('clubs.tpl');
		exit;
	}
Template Smarty:
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{foreach from=$CLUBS item=club}
		<div class="slidetitle list {$club.class}"  onclick="slide(this);">
			<a href="#" title="Voir les informations sur ce club">{$club.nom} [{$club.dpt}]</a>
		</div>
		<div class="slideitem" style="display: none; margin: 10px 0 20px 0;" >
			<div id="fiches">
				<div class="titre_fiches">
					{$club.nom} [{$club.dpt}]<br />
					<span class="num">Numéro du club: {$club.id}</span>
				</div>
				<div class="box">
					<span class="underline">Adresse du club</span>
					<p>{$club.address}<br />
					{$club.cp}, {$club.ville}</p>
				</div>
				<div class="box">
					<span class="underline">Contacts du club</span>
					<p>Téléphone: <b>{$club.tel}</b><br />
					Email: <b>{$club.email}</b></p>
				</div>
				<div class="contacts">
					<span class="underline">Contacts du club</span> 
					<a href="#" title="Ajouter un contact"><img src="templates/{$TPL}/images/new_contact.png" /></a>
				</div>
				<div class="contacts_list">
					{foreach from=$club.cont item=contact}
						<a href="#" onclick="detail('#{$contact.nom}');" class="basic" >{$contact.prenom} {$contact.nom} - {$contact.type}</a><br />
						<div id="{$contact.nom}" style="display: none;">
							<div id="wrapper">
								<div id="leftcolumn">
									<img src="avatars/{$contact.avatar}" width="100px" height="100px" />
								</div>
								<div id="rightcolumn">
									<span class="titre">{$contact.prenom} {$contact.nom}</span>
									<span class="type">( {$contact.type} )</span>
									<br />
									<br />
									<p><span class="label">Téléphone Fixe: </span>{$contact.fixe}</p>
									<p><span class="label">Téléphone Mobile: </span>{$contact.gsm}</p>
									<p><span class="label">Adresse E-mail: </span>{$contact.email}</p>
								</div>
							</div>	
						</div>
					<div style="display: none;">
						<img alt="Fermer" src="templates/{$TPL}/images/x.png">
					</div>
					{/foreach}
				</div>
			</div>
		</div>
	{/foreach}
Je n'arrive pas à voir d'où vient mon problème. Pouvez-vous m'aiguiller ?