- Home
- Categorie
- Coding e Sistemistica
- Coding
- mysql-fetch + smarty
- 
							
							
							
							
							
mysql-fetch + smartynon riesco a fare il ciclo, in smarty, di un risultato di una query mysql [PHP]$result=mysql_fetch_array($db->query);[/PHP] io assegno $result come veriabile a smarty: [PHP]$smarty->assign('news', $result);[/PHP] nel template 
 se faccio stampare il risultato ,senza ciclo funziona, ovvero:
 [PHP]
 {$news.title}
 {$news.text}[/PHP]se invece gli faccio fare il ciclo mi restituisce la prima lettera dei campi  [PHP]{foreach from=$news item=row } 
 {$row.title}
 {$row.date}
 {/foreach}[/PHP]ho provato a riempire la variabile $result, prima di assegnarla a smarty, con un ciclo sull'array della query al db, 
 usando poi un ciclo {section} il tutto funziona,ma ci deve essere un modo più semplice no ??? usando il ciclo foreach ?? 
 
- 
							
							
							
							
							
Non conosco smarty, però in questo caso mi sembra che il ciclo devi farlo sulla fetch: while ($result=mysql_fetch_array($db->query)) 
 {
 ...
 }
 
- 
							
							
							
							
							
si, ma io tentavo di fare il ciclo direttamente sul template 
 
- 
							
							
							
							
							
Però se passi il risultato della fetch passi un solo record - array, se fai il ciclo su quello fai il ciclo sui campi di quel singolo record. 
 
- 
							
							
							
							
							
@Senamion said: Però se passi il risultato della fetch passi un solo record - array, se fai il ciclo su quello fai il ciclo sui campi di quel singolo record. e si era proprio quello il problemma !!  
 ho risolto riempendo la variabile assegnata a smarty con un ciclo, che restituisce i risultati di ogni riga dell'array:[PHP]while ($row=mysql_fetch_array($db->result,MYSQL_ASSOC)) { 
 $result[]=$row;
 $smarty->assign('news', $result );
 }[/PHP]e nel template [PHP]{foreach from=$news key=arrkey item=arritem} 
 {$arrkey} = {$arritem.title}
 {$arritem.text}</p>
 {/foreach}[/PHP]mi piace smarty, ha un mucchio di funzioni interessanti.. provatelo! 