Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Templates > Smarty
Smarty Forum d'entraide sur le moteur de templates Smarty. Avant de poster -> FAQ Smarty et Cours Smarty
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2010, 12h43   #1
Invité de passage
 
Inscription : septembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 10
Points : 1
Points : 1
Par défaut Problème de boucle

Bonjour, j'utilise un système de module et composant et j'arrive à afficher
seulement le premier module ou composant mais les autres ne s'affiche pas.
J'en déduit que je dois avoir un problème de boucle car pour la suite j'utilise la variable $i++;


Code php:
Code :
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
$composant = array();
 
$resultat = mysql_query("SELECT id, type, acces, niveau, tniveau, etat, nom, accueil, place, page, config FROM me_plugin WHERE type='composant' AND niveau>='".$s_niveau."' AND niveau!='1' AND etat='1' AND place!='page'") or die('<div id="msg-r">Un probl&egrave;me est survenu. Veuillez r&eacute;esayer</div>');
 
	$i = 0;
	if($i!=0 && $i%3==0) { echo "</tr> \n"; }
	if($i!=0 && $i%3==0) { echo "<tr> \n"; }
	while($temp = mysql_fetch_array($resultat))
	{
		$composant[$i++] = array( 
					'ID' => $temp[0],
					'TYPE' => $temp[1],
					'ACCES' => $temp[2],
					'NIVEAU' => $temp[3],
					'TNIVEAU' => $temp[4],
					'ETAT' => $temp[5],
					'NOM' => $temp[6],
					'ACCUEIL' => $temp[7],
					'PLACE' => $temp[8],
					'PAGE' => $temp[9],
					'CONFIG' => $temp[10]
          );
 
        }
 
        $smarty->assign('COMPOSANT', $composant);
		$smarty->display("$theme/compte.tpl");
Code tpl

Code :
1
2
3
4
{foreach from=$COMPOSANT item=composant}
    <td id="imag"> <img width="48" src="plugins/composants/{$composant.ACCES}/logo.png" /> </td>
    <td> <a href="?page=composant&id={$composant.ACCES}">{$composant.NOM}</a> </td>
	{/foreach}
Je n'arrive pas à comprendre mon erreur si une personne pouvait m'éclairer.
tison06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 12h49   #2
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

essayes comme ça :

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
while($temp = mysql_fetch_array($resultat))
	{
		$composant[$i] = array( 
					'ID' => $temp[0],
					'TYPE' => $temp[1],
					'ACCES' => $temp[2],
					'NIVEAU' => $temp[3],
					'TNIVEAU' => $temp[4],
					'ETAT' => $temp[5],
					'NOM' => $temp[6],
					'ACCUEIL' => $temp[7],
					'PLACE' => $temp[8],
					'PAGE' => $temp[9],
					'CONFIG' => $temp[10]
          );
$i++;
}
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 12h58   #3
Invité de passage
 
Inscription : septembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 10
Points : 1
Points : 1
Par défaut Idem

Bonjour, merci de ton aide.
J'ai essayé le code que tu m'as donné mais il n y a aucun changement, j'ai toujours le premier module ou composant qui s'affiche, je pense plutôt à un problème au niveau du tpl.
Voilà le code php d'affichage:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<td>
	<table id="bloci" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td id="imag"> <img width="48" src="<?php echo "$a_composant/".$rowc['acces']; ?>/logo.png" /> </td>
    <td> <a href="?page=composant&id=<?php echo $rowc['acces']; ?>"><?php echo __($rowc['nom']); ?></a> </td>
    </tr>
    </table>
</td>
 
<?php
$i++;
}
?>
</tr>
Et voiçi le code d'affichage en .tpl
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<td>
 
	<table id="bloci" border="0" cellpadding="0" cellspacing="0">
    <tr>
	{foreach from=$COMPOSANT item=composant}
    <td id="imag"> <img width="48" src="plugins/composants/{$composant.ACCES}/logo.png" /> </td>
    <td> <a href="?page=composant&id={$composant.ACCES}">{$composant.NOM}</a> </td>
	{/foreach}
    </tr>
    </table>
</td>
//je dois récupérer ici la variable $i++ mais comment?
</tr>
tison06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 13h17   #4
Invité de passage
 
Inscription : septembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 10
Points : 1
Points : 1
Par défaut Résolu

J'ai déplacé les foreach comme ceci:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table border="0" cellpadding="0" cellspacing="0">
<tr>
{foreach from=$COMPOSANT item=composant}
<td>
<table id="bloci" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="imag"> <img width="48" src="plugins/composants/{$composant.ACCES}/logo.png" /> </td>
<td> <a href="?page=composant&id={$composant.ACCES}">{$composant.NOM}</a> </td>
</tr>
</table>
</td>
{/foreach}
</tr>
</table>
tison06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h05.


 
 
 
 
Partenaires

Hébergement Web