ciao a tutti/e,
ho uno script che mi permette di visualizzare le foto contenute in un database. le foto che vengono mostrate sono solo quelle che hanno la stessa sottocategoria
ecco il codice
Codice PHP:
<?php
if(isset($_GET['id'])){
// Connessione al DB
.......
$cn = @mysql_connect($host,$user,$pass) or die (mysql_error());
$sl = @mysql_select_db($data) or die (mysql_error());
// Cartella fisica in cui andremo ad inserire le immagini.
// Va creata nella stessa posizione dove si trovano i file .php
$path_img = '/foto/';
// 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 galleria WHERE ID_CONTATORE = '$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['FOTO']);
$categoria = stripslashes($f['CATEGORIA']);
$descrizione = stripslashes($f['DESCRIZIONE']);
$sottocategoria = stripslashes($f['SOTTOCATEGORIA']);
// estraggo dal DB il primo e l'ultimo ID
$sql_count = @mysql_query("SELECT MIN(ID_CONTATORE) AS min, MAX(ID_CONTATORE) AS max FROM galleria") 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_CONTATORE FROM galleria WHERE ID_CONTATORE < '$id_vis' AND SOTTOCATEGORIA ='". $sottocategoria ."' ORDER BY ID_CONTATORE DESC LIMIT 1 ") or die (mysql_error());
$f_prev = @mysql_fetch_array($query_prev)or die (mysql_error());
$id_prev = $f_prev['ID_CONTATORE'];
echo "<div align=\"center\"><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_CONTATORE FROM galleria WHERE ID_CONTATORE > '$id_vis' AND SOTTOCATEGORIA ='". $sottocategoria ."' ORDER BY ID_CONTATORE ASC LIMIT 1") or die (mysql_error());
$f_next = @mysql_fetch_array($query_next)or die (mysql_error());
$id_next = $f_next['ID_CONTATORE'];
echo "<a href=\"visual.php?id=$id_next\">Successiva >></a></div></td></tr>";
}
}else{
// stampo un errore se l'immagine non esiste
echo "Nessuna immagine inserita.";
}
// stampo a video l'imagine e le relative informazioni
//echo $titolo . "
";
echo "<tr align=\"center\"><td><img src=\"/foto/". $titolo . "\" border=\"1\" alt=". $descrizione ." width=\"500\">";
echo "
". $descrizione . "
";
// chiudo la tabella
echo "</td></tr></table>";
}
?>
il problema è che così facendo non riesco a visualizzare la prima e l'ultima foto.
se nel db ho 6 foto con id_cat, p es 6 foto, scorro ottimamente dalla seconda alla quinta, arrivati alla sesta leggo solo il testo "precedente" ma non vedo la foto. lo stesso dicasi quando arrivo alla prima foto, leggo solo "successivo" ma niente foto.
probabilmente dovrei perfezionare la parte relativa alla query dove c'è il LIMIT 1, ma non so come o se è quella la parte da toccare.
mi date una mano?
grazie.