Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Una galleria d'immagini con PHP, le GD2 e MySQL

Articolo scritto da Claudio Garau
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\">&lt;&lt; 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 &gt;&gt;</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.

Corsi
Corso LinuxCorso Linux
Guida completa al sistema open-source. A partire da 39 €.
Corso MySQLCorso MySQL
Gestione del database open-source. A partire da 49 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. A partire da 49 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122