Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    41

    consigli paging tabella dinamica in ciclo while

    dovrei creare una tabella con n celle.

    ogni cella conterrà una piccola thumb di 150px. la tabella non può essere più larga di 700px e le celle devono essere una accanto all'altra ed andare su una nuova riga quando si raggiune la larghezza massima della tabella.

    poichè devo integrare la cosa all'interno di un while che prende in input una query vorrei usare il tutto all'interno di una sola riga (<tr>) ma immagino che non si possa fare.

    il tutto è necessario perchè il numero degli elementi (cioè delle thumbs) non è fisso ma può cambiare dinamicamente da una query all'altra.


    consigli?

  2. #2
    fatti i debiti calcoli beh se la thumb e 150px allora per ogni riga ci staranno massimo 4 immagini (150x4=600) per cui il ciclo while sarà tipo

    Codice PHP:
    echo "<table border=\"1\" width=\"700\">";
    foreach (
    $rows as $row) {
      
    $array getimagesize($row['nome_thumb']);
      echo 
    "<tr>
                 <td><img src=\"thumb1\" "
    .$array[2]." alt=\"thumbnail\"></td>
                 <td><img src=\"thumb2\" "
    .$array[2]." alt=\"thumbnail\"></td>
                 <td><img src=\"thumb3\" "
    .$array[2]." alt=\"thumbnail\"></td>
                 <td><img src=\"thumb4\" "
    .$array[2]." alt=\"thumbnail\"></td>
                </tr>"
    ;
    }
    echo 
    "</table>"

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    scusa ma cosi' non stampi sulla stessa riga 4 thb uguali?

    visto che i path sono caricati da db
    io farei una cosa tipo

    Codice PHP:

    $immagini 
    mysql_query("select .... ");

    $row_cap 4;
    $attr ="cellspacing=\"2\" width=\"700\" ";
    $tbl "<table $attr>";
    $printed_imgs =0;
    $rows "";
    while( 
    $currmysql_fetch_array($immagini) )
    {
          if( 
    file_exists($curr) )
          {
                if( 
    $printed_imgs==|| $printed_imgs%$row_cap==)
                      
    $rows.="<tr>";

                
    $rows .="<td><img src=\"".$curr[img_path]."\" border=\"0\"></td>";
                
    $printed_imgs++;

                if(
    $printed_imgs%$row_cap==0)
                      
    $rows.="</tr>";
          }

          
    //ora chiudiamo la tabella se l'ultima riga non e' completa
          
    if( $printed_imgs%$row_cap!=)
          {
                for(
    $i=0$i<($printed_images%$row_cap);$i++ )
                      
    $rows .="<td></td>";

                
    $rows.="</tr>";
          }
    }
    $tbl.=$rows."</table>";
    echo 
    $tbl

    Ovviamente potrebbe nnon funzionare visto che e' scritto di getto.
    Cmq ora mi viene in mente una sol diversa :

    Codice PHP:

    $immagini 
    mysql_query("select .... ");

    $row_cap 4;
    $attr ="cellspacing=\"2\" width=\"700\" ";
    $tbl "<table $attr>";
    $printed_imgs =0;
    $rows "";

    $total_images mysql_num_rows($immagini);

    $total_rows $total_images $row_cap ceil($total_images/$row_cap) : ;

    // for di stampa righe
    for( $i =$i<$total_rows$i++)
    {
          
    $rows.="<tr>";
          
    // for di stampa colonne
          
    for($j=0$j<$row_cap  ;$j++ )
          {
                
    $curr mysql_fetch_array$immagini )
                if( 
    $curr && file_exists_($curr[thb]) )
                {
                      
    $rows.="<td><img src=\"".$curr[thb]."\" border=\"0\"></td>";
                      
    $printed_imgs++;
                }
          }
          
    $rows.="</tr>";
    }

    $tbl .=$rows."<tr><td colspan=\"$row_cap\">Immagini trovate : $printed_imgs</td></table>"  ;

    echo 
    $tbl
    Sono due modi di procedere differenti, ovviamente come idea base poi ci puoi lavorare sopra come vuoi.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.