Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [smarty] passare risultati query a template

    ho una normale query...
    Codice PHP:
    $query mysql_query("Select * From table"); 
    ... e normalmente mi verrebbe da fare così poi...
    Codice PHP:
    while ($row mysql_fetch_assoc($query)){
     
    $dato1[] = $row['dato1'];
     
    $dato2[] = $row['dato2'];
     
    //etc..
    }
    // e poi per portarle sul template di smarty
    $smarty->assign("dato1"$dato1);
    $smarty->assign("dato2"$dato2);
    // etc.. 
    e dopo andrei con la funzione section direttamente sul template per visualizzare i risultati.
    Ma c'è un modo per saltare la fase di "appoggio" dati in variabile $dato e poter far direttamente nel ciclo while il $smarty->assign ?

    Dovrei annidare tutto dentro degli array forse in questo modo ?
    Codice PHP:
    $i=1;
    while (
    $row mysql_fetch_assoc($query)){
     
    $tutti_i_dati[$i] = $row['dato1'];
     
    $tutti_i_dati[$i] = $row['dato2'];
     
    $i++;
    }
    $smarty->assign("dati"$tutti_i_dati); 
    Ma poi sul file .tpl come li recupero ? Quando si tratta di maneggiare gli array il mio cervello va in pappa

    Grazie !

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    io sono abituato a usare il foreach, il section non l'ho mai guardato, comunque farei cosi:
    Codice PHP:
    $query mysql_query("Select * From table");
    while (
    $row mysql_fetch_assoc($query)){ 
      
    $tutti_i_dati[] = $row;
    }
    $smarty->assign("dati"$tutti_i_dati); 
    tpl
    codice:
    {foreach item=row from=$dati}
      {$row.dato1}
      {$row.dato2}
    {/foreach}
    oppure

    codice:
    {foreach item=row from=$dati}
      {foreach item=dato from=$row}
         {$dato}
      {/foreach}
    {/foreach}
    ciao

  3. #3
    grazie mille

    approfitto di te e di chi leggerà il topic

    il foreach lo posso utilizzare anche in questo modo senza Smarty? Prima recuperare tutti i dati in un array e poi ciclarli ?

    Codice PHP:
    while ($row mysql_fetch_assoc($player->playerData)){
    $alldata[] = $row;
    }

    foreach(
    $alldata as $var){
     foreach(
    $var as $rec){
     echo 
    "rec[dato1]";
     }

    Sicuramente si ma credo che non si faccia così..

  4. #4
    Risolto così

    Codice PHP:
    foreach($alldata as $dato){
                
                echo 
    $dato[dato1]."
    "
    ;
                
            } 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.