I tutorial di Claudio Garau funzionano perfettamente. Io mi sto cimentando adesso con il php e ho difficoltà a visualizzare le immagini nel tutorial delle pagine. Mi spiego meglio la galleria funziona perfettamente e la paginazione anche, non riesco a usarle insieme. Grazie per la risposta
Questo il tutorial di Claudio Garau visibile a questo collegamento https://www.mrw.it/php/articoli/galleria-immagini-php-gd2-mysql_828.html queste due pagine di codice funzionano benissimo. Il problema è la paginazione seguendo il tutorial per la paginazione delle immagini non riesco a visualizzare le immagini nella pagina paginazione che allego sotto
primo file
<?php
// definiamo una costante per la pagina corrente
define("SELF", $_SERVER['PHP_SELF']);
// definiamo la classe
class Paging
{
// definiamo la pagina di partenza
function paginaIniziale($max_row)
{
if ((!isset($_GET['p'])) || ($_GET['p'] == "1"))
{
$parti_da = 0;
$_GET['p'] = 1;
}else{
$parti_da = ($_GET['p']-1) * $max_row;
}
return $parti_da;
}
// contiamo le pagine e stabiliamo quanti records devono essere impaginati
function contaPagine($conta, $max_row)
{
$pgg = (($conta % $max_row) == 0) ? $conta / $max_row : floor($conta / $max_row) + 1;
return $pgg;
}
// permettiamo la navigazione per pagine precedenti e successive
function precedenteSuccessiva($p_corrente, $pgg)
{
$impaginazione = "";
if (($p_corrente-1) <= 0)
{
$impaginazione .= "Precedente";
}else{
$impaginazione .= "<a href=\"".SELF."?p=".($p_corrente-1)."\">Pag. precedente</a>";
}
$impaginazione .= " | ";
if (($p_corrente+1) > $pgg)
{
$impaginazione .= "Prossima";
}else{
$impaginazione .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">Prossima pag.</a>";
}
return $impaginazione;
}
}
?>
secondo file
<?php
//includiamo il file della classe
@require("paginazione.php");
//connettiamoci a MySQL e selezioniamo il database
class MySQL
{
function MySQL()
{
$this->host_name = "localhost";
$this->user_name = "username";
$this->password = "password";
$this->data_name = "dbseodir";
$this->link = @mysql_connect($this->host_name, $this->user_name, $this->password) or die (mysq_error());
@mysql_select_db($this->data_name) or die (mysq_error());
}
}
$data = new MySQL();
// istanziamo la classe per l'impaginazione
$p = new Paging;
// numero massimo di risultati per pagina
$max = 10;
// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);
// contiamo i records nel database
$query_count = @mysql_query("SELECT * FROM sitezzz") or die (mysql_error());
$count = @mysql_num_rows($query_count) or die (mysql_error());
// troviamo il numero delle pagine che dovrà essere contato
$pagine = $p->contaPagine($count, $max);
// limitiamo la SELECT al numero di risultati per pagina
$query = @mysql_query("SELECT * FROM sitezzz LIMIT ".$inizio.",".$max) or die (mysql_error());
Ciao Eliox
grazie per il grande aiuto che mi hai dato sono riuscito a far funzionare la galleria. Ora c'è un problema visualizzo tutte miniature e non riesco a incolonnarle per tre dammi un ulteriore aiuto.
Saluti Cherpy
Ciao Eliox
ho guardato il tutorial e sinceramente non riesco a farlo funzionare io dopo i precedenti aiuti ho realizzato la pagina per la galleria e l'impaginazione come il codice che ti allego:
galleria.php
<?php
//includiamo il file della classe
@require("paginazione.php");
$path_img = 'files/';
//connettiamoci a MySQL e selezioniamo il database
include 'config_mysql.php';
// istanziamo la classe per l'impaginazione
$p = new Paging;
// numero massimo di risultati per pagina
$max = 3;
// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);
// contiamo i records nel database
$query_count = @mysql_query("SELECT * FROM images") or die (mysql_error());
$count = @mysql_num_rows($query_count) or die (mysql_error());
// troviamo il numero delle pagine che dovrà essere contato
$pagine = $p->contaPagine($count, $max);
// limitiamo la SELECT al numero di risultati per pagina
$query = @mysql_query("SELECT * FROM images LIMIT ".$inizio.",".$max) or die (mysql_error());
// 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>";
}
?>
il codice per l'incolonnamento dove lo metto?
Grazie per il tuo aiuto saluti Cherpy
Salve amici del forum senza di voi noi siamo niente in special modo io che in questo momento sono in tilt, praticamente non ci sto capendo nulla.
mettiamo a confronto questi due codici, dove il primo stampa a video incolonnati per tre le immagini questo il codice
echo "<table>";
// recupero i dati dal DB
$query = "SELECT * FROM images ORDER By Id ";
$res = mysql_query($query) or die (mysql_error());
// numero delle immagini presenti nel DB
$n_img = mysql_num_rows($res);
// verifico che il DB ospiti almeno un'immagine
if($n_img >= 1 ){
// stabilisco il numero di riche e colonne della nostra tabella per l'impagninazione
$colonne = 3;
$righe=0;
// ciclo tutti i record recuperati attraverso la nostra query
while ($f=@mysql_fetch_array($res)){
$righe++;
$id = $f['Id'];
$titolo = stripslashes($f['Titolo']);
$nome = stripslashes($f['Nome']);
$descrizione = stripslashes($f['Descrizione']);
il secondo codice stampa le immagini 1 per colonna
secondo codice
@require("paginazione.php");
$path_img = 'files/';
include 'config_mysql.php';
// istanziamo la classe per l'impaginazione
$p = new Paging;
// numero massimo di risultati per pagina
$max = 6;
// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);
// contiamo i records nel database
$query_count = @mysql_query("SELECT * FROM images") or die (mysql_error());
$count = @mysql_num_rows($query_count) or die (mysql_error());
// troviamo il numero delle pagine che dovrà essere contato
$pagine = $p->contaPagine($count, $max);
// limitiamo la SELECT al numero di risultati per pagina
$query = @mysql_query("SELECT * FROM images LIMIT ".$inizio.",".$max) or die (mysql_error());