Assignation template et WHILE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Assignation template et WHILE

par nelumbo » 25 juin 2008, 17:48

Bhein en fait, il s'agit d'un script de deltascripts que je modifie doucement... doucement. Peut être une solution du côté des smarty classes ? ( C'est in english ... :evil: )

par katagoto » 25 juin 2008, 13:18

Bah tu peux très bien inclure le template d'un côté et le PHP qui y correspond de l'autre...

Ca revient au même

par djtec » 25 juin 2008, 13:10

C'est vrai que Talus Tpl est bien mais si tu veux inclure des fichiers php tu peux pas le seul que j'ai trouvé qui accepte d'inclure des fichiers php c'est phpbb et tu peux les inclure ou tu veux dans ton tpl.

Moteur de PhpBB: http://g-rossolini.developpez.com/compa ... hpbb2#LIII

par katagoto » 25 juin 2008, 13:02

Mais pourquoi veut-tu prendre celui de PHPBB ? tu aime souffrir :lol:
Pourquoi commencer par un système de template ?

Si tu en veux un plus simple : [url=http://www.siteduzero.com/tuto-3-29602- ... s-tpl.html]Talus' TPL[url] est bien, je trouve

par nelumbo » 25 juin 2008, 12:48

Ouaip, c'est moi :) .

Aucune des 2 solutions ne fonctionnent.

La solution de katagoto affiche 'array'. :shock:

C'est pas évident de débuter en php et voilà que les templates s'y mettent

:lol: .

par katagoto » 25 juin 2008, 12:24

Ok, c'est toujours bon à savoir :lol:

Une réponse de l'auteur ???

par djtec » 25 juin 2008, 12:11

Katagoto pour PHPBB il faut faire comme ceci
while($affichage = mysql_fetch_array($sql, MYSQL_ASSOC))
{
	$tplListing->assign_block_var('list', array(
		'MEMBER' => $affichage['username'].'<br>'
	));
} 
Et cela répétera le bloc list autant de fois qu'il y a de membres voilà.

Et pour son template je penchais plus pour un truc dans se genre mais je ne sais pas si tout les template son pareil.

par katagoto » 25 juin 2008, 10:40

Il faut traité ça par tableau je penses :
$list=array();
while($affichage = mysql_fetch_array($sql, MYSQL_ASSOC)) 
{ 
      $list[] = $affichage['username'].'<br>';       
} 

$tplListing->assign('list',$list);
Je penses que ça doit marcher, en générale les moteurs de template fonctionnent comme ça...

Je vous avourais que je n'ai jamais utilisé celui de PHPBB

par mcorgnet » 25 juin 2008, 01:43

Le problème, c'est que tu assignes à chaque tour de boucle une valeur à ta variable. Ca affiche le dernier, parce qu'en fin de boucle, c'est la dernière itération qui écrit dans ta variable.

Ton système de template t'offre normalement une méthode genre :

assign_block_vars (template de phpbb)

qui permet d'assigner des variables à un tableau dans ton template.

Je sais pas si je suis clair ...

par nelumbo » 24 juin 2008, 22:44

Cela affiche uniquement le dernier 'username' .

Avec cette variante, c'est idem.
   while($affichage = mysql_fetch_array($sql, MYSQL_ASSOC))
{
      $list = $affichage['username'].'<br>';	  
} 

$tplListing->assign('list',$list);

par djtec » 24 juin 2008, 22:20

Bonsoir,

Essaye ceci:
while($affichage = mysql_fetch_array($sql, MYSQL_ASSOC))
{
      $tplListing->assign('list',$affichage['username'].'<br>');
}

Ou un truc dans ce genre tout dépend comment fonctionne ton système de template.

Assignation template et WHILE

par nelumbo » 24 juin 2008, 20:56

Bonsoir,

Je débute en PHP et je n'arrive pas assigner le résultat de ma boucle à mon template.
<?php
session_start();
include("header.php");
$tplListing = new TplLoad;

$variable = $_GET['variable'];

$sql = mysql_query("SELECT username FROM users WHERE completed_profile='1' AND f_23=$variable ORDER BY username ASC", $bdd2);

while($affichage = mysql_fetch_array($sql, MYSQL_ASSOC)){
   echo $affichage['username'],'<br>';
}

$tplListing->assign('list',$listing);
$tplListing->display('dynamique.tpl');


mysql_close($bdd2);

include "footer.php";
?> 
Je souhaiterai que $listing = $affichage['username'] :D

Je ne sais pas du tout comment faire...