Una galleria d'immagini con PHP, le GD2 e MySQL
Articolo scritto da Claudio Garau
Pagina 5 di 5
Pagina 5 di 5
5. Visualizzazione degli ingrandimenti e impaginazione
La pagina destinata alla visualizzazione degli ingrandimenti, che poi non sono altro che i file originariamente uploddati, permetterà non soltanto di vedere le immagini nelle loro dimensioni reali, ma anche di muoversi tra di esse tramite i classici link 'precedente' e 'successiva' utilizzati solitamente per scorrere le slides.
(L'articolo continua più sotto...)
');
Di seguito riportiamo il codice completo della pagina 'visual.php':
<?php
if(isset($_GET['id'])){
@include 'config.php';
// apro la tabella
echo "<table><tr><td>";
// recupero dalla querystring l'ID dell'immagine da visualizzare
$id_vis = $_GET['id'];
// verifico la presenza dell'immagine sul DB
$query = "SELECT * FROM images WHERE Id = '$id_vis'";
$res = @mysql_query($query) or die (mysql_error());
$n_img = @mysql_num_rows($res);
// se l'id specificato esiste procedo con la visualizzazione
if($n_img == 1 )
{
// recupero i dati dell'immagine selezionata
$f = @mysql_fetch_array($res) or die (mysql_error());
$titolo = stripslashes($f['Titolo']);
$nome = stripslashes($f['Nome']);
$descrizione = stripslashes($f['Descrizione']);
// stampo a video l'imagine e le relative informazioni
echo $titolo . "<br />";
echo "<img src=\"" . $path_img . $nome . "\" border=\"0\">";
echo "<br />" . $descrizione . "<br><br>";
// estraggo dal DB il primo e l'ultimo ID
$sql_count = @mysql_query("SELECT MIN(Id) AS min, MAX(Id) AS max FROM images") or die (mysql_error());
$id_max = @mysql_fetch_array($sql_count) or die (mysql_error());
$min = $id_max['min'];
$max = $id_max['max'];
// calcolo e stampo il link per l'immagine precedente
if($_GET['id'] != $min){
$query_prev = @mysql_query("SELECT Id FROM images WHERE Id < '$id_vis' ORDER BY Id DESC LIMIT 1") or die (mysql_error());
$f_prev = @mysql_fetch_array($query_prev)or die (mysql_error());
$id_prev = $f_prev['Id'];
echo "<a href=\"visual.php?id=$id_prev\"><< Precedente</a>";
}
// calcolo e stampo il link per l'immagine successiva
if($_GET['id'] < $max){
$query_next = @mysql_query("SELECT Id FROM images WHERE Id > '$id_vis' ORDER BY Id ASC LIMIT 1") or die (mysql_error());
$f_next = @mysql_fetch_array($query_next)or die (mysql_error());
$id_next = $f_next['Id'];
echo "<a href=\"visual.php?id=$id_next\">Successiva >></a>";
}
}else{
// stampo un errore se l'immagine non esiste
echo "Nessuna immagine inserita.";
}
// chiudo la tabella
echo "</td></tr></table>";
}
?>
Da notare come il conteggio dei file presenti nella cartella sia effettuato tramite una query COUNT. Questo ci permette di comunicare all'applicazione il numero di slides visualizzabili anche nel caso in cui gli ID non siano sequenziali.







