- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- mysql-fetch + smarty
-
mysql-fetch + smarty
non 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!