questo è un vecchio esempio trovato qualche anno fa su questo forum...
in pratica fa quello che dici te, con le foto e le descrizioni delle stesse prese da un DB...
Codice PHP:
// connessione al database
mysql_connect("localhost", "root", "password") or die("Connessione fallita !");
// selezione del DB
mysql_select_db("DB") or die("Selezione del DB fallita !");
error_reporting(0);
// prende numero record della tabella scelta
$count = mysql_query("SELECT COUNT(id) FROM tabella");
$res_count = mysql_fetch_row($count);
// numero totale di records
$tot_records = $res_count[0]; //va beh li passo a un'altra variabile
// risultati per pagina(secondo parametro di LIMIT)
$per_page = 20; //decidi il numero di record da visualizzare per ogni pagina
// numero totale di pagine
$tot_pages = ceil($tot_records / $per_page);
// pagina corrente
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
// primo parametro di LIMIT
$primo = ($current_page - 1) * $per_page;
$tablecolumns = 5; //stabilisce le colonne della tabella
$column_width = 100 / $tablecolumns; // distribuisce la larghezza delle celle
$thumb_width = 100;
echo "
<font><center><table border='0' cellpadding='5' cellspacing='1' width='450'";
echo "<tr>";
// Recupero dati dal database limitati
$query = mysql_query("SELECT * FROM tabella ORDER BY prog DESC");
//piglia i dati e li mette in variabili
while ($row = mysql_fetch_array($query)) {
$id = $row["id"];
$foto = $row["foto"];
$descrizione = $row["descr"];
$descrizione=eregi_replace("''", "'", $descrizione);
$imgsrc = $row["img"];
// Costruzione celle
echo "<td align='center' width=$column_width%>";
$size = getimagesize ("$imgsrc");
$image_ratio = $size[1] / $size[0];
$thumb_height = $thumb_width * $image_ratio;
echo "[url='pagina.php?id=$id'][img]images/$foto[/img][/url]";
// echo "$descrizione";
echo "</td>";
$rowcount++;
if ($rowcount >= $tablecolumns)
{
echo "</tr>";
echo "<tr>";
$rowcount=0;
}
}
mysql_close();