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( $curr= mysql_fetch_array($immagini) )
{
if( file_exists($curr) )
{
if( $printed_imgs==0 || $printed_imgs%$row_cap==0 )
$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!=0 )
{
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) : 1 ;
// for di stampa righe
for( $i =0 ; $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.