Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Paginare immagini

  1. #1

    Paginare immagini

    Buon giorno, ho questo problemino vorrei paginare 15 immagini per cartella.
    Ho provato a fare qualcosa ma non mi riesce.
    Potete aiutarmi per favore?
    codice:
    $i = 0;
    if ($dir = opendir($dirname)) {
       	while (false !== ($dfile = readdir($dir))) { 
       	if ($dfile != "." && $dfile != "..") { 
    		echo "
    $dfile
    "; 
    		$dir2 = opendir($dirname.$dfile.'\\');
    		while($file=readdir($dir2)){
    			$findJpg = ".jpg"; 
    			$mystring1 = $file; 
    			$pos1 = strpos ($mystring1, $findJpg);
    			if ($pos1 != false) {
    			@list($width, $height, $type, $attr) = getimagesize($dir_foto.$web.$dir_anno.$mystring1);
    												$caratteri = array($findJpg);
    			$soloCaratteri = str_replace($caratteri, "", $mystring1);
    			$soloCaratteri = str_replace(".jpg", "", $mystring1);
    												//ogni finestra per visualizzare l'immagine deve prendere le misure medesime 			
    												$slh = "/";
    												echo "	<a href=\"#\" onclick=\"workaround('$dirname$dfile$slh$mystring1',$width+20,$height+20); return false;\" title='Italiano - Link interno - Nuova finestra'>
    				<img class=\"imgGallery\" src=\"$dirname$dfile$slh$mystring1\" alt=\"$mystring1\"/>
    				</a>";
                                                       //inizio paginazione immagini							$i++;
    				//se sono alla 4° riga o un multiplo di 2 cambio riga
    				if($i%2==0){
    					//echo "</tr><tr>";
    				}
    			} //close if
    		}//close while
    		//finito il ciclo aggiungo le celle mancanti e chiudo la riga
    		if($i%2!=0){
    			$mancano = 2-($i%2);//righe mancanti
    			for($j=1;$j<=$mancano;$j++){
    				//echo "<td></td>";
    			}
    		}
    		closedir($dir2); 
    	}//close if
    	}//close while
      	closedir($dir); 
    }//close if
    Questo è quello che ho, ma non mi riesce di apginare, dov'è che sbaglio?
    Grazie mille come sempre....

  2. #2
    cosa intendi per paginare?

  3. #3
    intendo, prendere 10 - 15 immagini, per ogni cartella, e le restanti passarle alla pagina successiva..e cosi via, non so se mi sono spiegato,adesso...
    Nel post, dove c'è lo pseudo script per la paginazione avevo menzionato solo due immagini , ma era una prova.

    Di più non so...Grazie per avermi risposto

  4. #4
    allora, questa è una vecchia pagina dove paginava i risultati di una query.
    Sto cercando di adattarla al mio scopo.Sto facendo in questo modo:

    codice:
    while (false !== ($dfile = readdir($dir))) { 
       	if ($dfile != "." && $dfile != "..") { 
    		echo "
    $dfile
    "; 
    		$dir2 = opendir($dirname.$dfile.'\\');
    											//conta file, in questo caso soltanto JPG, nelle cartelle..
    		$images = glob("$dirname$dfile$slh{*.jpg,*.JPG}", GLOB_BRACE);
    		$totJpgInFolder =  count($images);
    		echo "C: " . $totJpgInFolder; // ...e sai quanti sono
    
                              while($file=readdir($dir2)){
    			$findJpg = ".jpg"; 
    			$mystring1 = $file; 
    			$pos1 = strpos ($mystring1, $findJpg);
    												if ($pos1 != false) {
    				@list($width, $height, $type, $attr) = getimagesize($dir_foto.$web.$dir_anno.$mystring1);
    				$caratteri = array($findJpg);
    				$soloCaratteri = str_replace($caratteri, "", $mystring1);
      			             $soloCaratteri = str_replace(".jpg", "", $mystring1);
    													//ogni finestra per visualizzare l'immagine deve prendere le misure medesime 			
    				$slh = "/";
    				echo "	<a href=\"#\" onclick=\"workaround('$dirname$dfile$slh$mystring1',$width+20,$height+20); return false;\" title='Italiano - Link interno - Nuova finestra'>
    					<img class=\"imgGallery\" src=\"$dirname$dfile$slh$mystring1\" alt=\"$mystring1\"/>
    					</a>";
    			} //close if
    		}//close while
    		closedir($dir2); 
    	}//close if
    	}//close while
    	closedir($dir);
    	//qui faccio l'include, ma forse è il punto sbagliato
                 include("paginazione.php");
    //etc etc
    questa è la pagininazione.php, non posto tutto il codice che è troppo lungo:
    codice:
    //conteggio i record presenti
    $totJpgInFolder = $totJpgInFolder;
    //INIZIO FUNZIONE
    function paging($totJpgInFolder,$x_pag=7,$num_links=7){
    		//calcolo il numero di pagine necessarie per visualizzare i dati
    		$numpages = ceil($totJpgInFolder/$x_pag);
    		//ottengo il numero di pagina, se manca lo imposto ad 1
    		$pag = isset($_GET['pag'])? $_GET['pag'] : 1;
    				 
    		//imposto il primo estremo del limit
    		$da = ($pag-1) * $x_pag;
    				 
    		//appendo il limit alla query originaria
    		$query .= " $da,$x_pag";
    				 
    		//gestisco la propagazione della query string, anche per post?
    		$querystring = '';
    		foreach($_GET as $k => $v){
    			if ($k != 'pag'){
    				$querystring .= "&".$k."=".$v;
    			}
    		}
    		//inizializzo una stringa vuota in cui appenderò l'output del menu'
    		$menu = 'Pagine(' . $numpages . '):';
    
                              //serie di condizionali in cascata per costruire il menu' 
    		if($numpages <= $num_links){
    			for ($pagina = 1; $pagina <= $numpages; $pagina++){
    				if ($pagina == $pag){
    					$menu .= "<span class=\"pag_selected\">[ $pagina ]</span> ";
    				}
    				else{
    					$menu .= "<a class=\"link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\" target=\"_self\"> $pagina </a> ";
    				}
    			}
    		}
    		//se la pag corrente è tra le prime $num_links/2 --> stampo i primi $nun_links link
    		elseif($pag <= ceil($num_links/2)){
    			for ($pagina=1; $pagina<=$num_links; $pagina++){
    				if ($pagina == $pag){
    					$menu .= "<span class=\"pag_selected\">[ $pagina ]</span> ";
    				}
    				else{
    					$menu .= "<a class=\"link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
    				}
    			}
    		$menu .= "<a class=\"link\" href=\"?pag={$numpages}{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a> ";
    		}
    				
    		//se la pag corrente è tra le ultime $num_links/2 --> stampo gli ultimi $nun_links link
    		elseif($pag > ($numpages-ceil($num_links/2))){
    			$menu .= "<a class=\"link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
    			for ($pagina=$numpages-$num_links+1; $pagina<=$numpages; $pagina++){
    				if ($pagina == $pag){
    					$menu .= "<span class=\"pag_selected\">[ $pagina ]</span> ";
    				}
    				else{
    					$menu .= "<a class=\"link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
    				}
    			}
    		}
    					
    		//Altrimenti la pagina corrente è una dell centrali --> stampo i $nun_links/2 link prima ed $nun_links/2 link dopo
    		else{
    			$menu .= "<a class=\"link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
    			for ($pagina = $pag-ceil($num_links/2-1); $pagina <= $pag+ceil($num_links/2-1); $pagina++){
    				if ($pagina == $pag){
    					$menu .= "<span class=\"pag_selected\">[ $pagina ]</span> ";
    				}
    				else{
    					$menu .= "<a class=\"link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
    				}
    			}
    			$menu .= "<a class=\"link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a> ";
    		}
    		 //restituisco il risultato della query, e l'output del menu'
    		 return array($menu);
    	}//CHIUDI FUNZIONE
    	
    
    /***************************************/
    // quest'ultima parte non so proprio come modificarla
    /**************************************/
    
    	// inserire i controlli come in indexNew.php e includere all'interno di ogni controllo risultati.php
    	$res = paging("SELECT * FROM TBDATICATASTALIFABBRICATOCAF where " . $select . " order by caf_nProgr DESC");
    	//echo $res; 
    			
    	if (!$res[0]) {
    		echo "<div class='MsgError'>La ricerca non ha prodotto risultati!</div>
    ";
    	}
    	else{
    		//include('tabella.php');
    	}
    	echo "<div id=\"paginazione\">".$res[1] ."</div>";//link della paginazione
    Se potete darmi una manina...grazie ancora

  5. #5
    buon giorno ragazzi, allora sono arrivato al punto della paginazione, inteso come generazione delle pagine effettive, nel senso che, trovate tot immagini per cartella, mi genera tot pagine.

    Il problema purtroppo è che, non riesco a visualizzare le immagini..Me ne restituisce soltanto una..l'ultima, questo è il codice:

    codice:
    if ($dir = opendir($dirname)) {
    	include("paginazione.php");
       	while (false !== ($dfile = readdir($dir))) { 
    	   	if ($dfile != "." && $dfile != "..") { 
    			echo "
    $dfile
    "; 
    	   		$slh = "/";
    			$dir2 = opendir($dirname.$dfile.'\\');
    			//conta file, in questo caso soltanto JPG, nelle cartelle..
    			$images = glob("$dirname$dfile$slh{*.jpg,*.JPG}", GLOB_BRACE);
    			$totJpgInFolder =  count($images);
    			while($file=readdir($dir2)){
    				$findJpg = ".jpg"; 
    			             $mystring1 = $file; 
    				$pos1 = strpos ($mystring1, $findJpg);
    			             if ($pos1 != false) {
     				            @list($width, $height, $type, $attr) = getimagesize($dir_foto.$web.$dir_anno.$mystring1);
    				             $caratteri = array($findJpg);
    					$soloCaratteri = str_replace($caratteri, "", $mystring1);													$soloCaratteri = str_replace(".jpg", "", $mystring1);
    					//ogni finestra per visualizzare l'immagine deve prendere le misure medesime 			
    				} //close if
    			}//close while
    			$res = paging($totJpgInFolder);
    			if (!$res[0]) {
    				echo "<div class='MsgError'>Not Photos!</div>
    ";
    			}
    			else{
    				while($dati = array_values($res[0])) {
    					echo "<img class=\"imgGallery\" src=\'".$dati[0]."'\" alt=\"$mystring1\"/>";
    			}
    		}
                              //link per la paginazione
    		echo "
    " . $res[1];
    		closedir($dir2); 
    	}//close if
    	}//close while
    closedir($dir);
    //include("paginazione.php");
    }//close if
    In pratica, dovrei visualizzare per ogni pagina generata 7 immagini come indico nello script della paginazione:
    codice:
    //INIZIO FUNZIONE
    function paging($totJpgInFolder,$x_pag=7,$num_links=7){
    	//conteggio i record presenti
    	$totJpgInFolder = $totJpgInFolder;
    
    	//calcolo il numero di pagine necessarie per visualizzare i dati
    	$numpages = ceil($totJpgInFolder/$x_pag);
    	//ottengo il numero di pagina, se manca lo imposto ad 1
    	$pag = isset($_GET['pag'])? $_GET['pag'] : 1;
    				 
    	//imposto il primo estremo del limit
    	$da = ($pag-1) * $x_pag;
    				 
    	//appendo il limit alla query originaria
    	$totJpgInFolder .= " $da,$x_pag";
    				 
    	//gestisco la propagazione della query string, anche per post?
    	$querystring = '';
    	foreach($_GET as $k => $v){
    		if ($k != 'pag'){
    			$querystring .= "&".$k."=".$v;
    		}
    	}
    	//inizializzo una stringa vuota in cui appenderò l'output del menu'
    	$menu = 'Pagine(' . $numpages . '):';
    				 
    	//serie di condizionali in cascata per costruire il menu' 
    	if($numpages <= $num_links){
    		for ($pagina = 1; $pagina <= $numpages; $pagina++){
    			if ($pagina == $pag){
    				$menu .= "<span class=\"pag_selected\">[ $pagina ]</span> ";
    			}
    			else{
    				$menu .= "<a class=\"link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\" target=\"_self\"> $pagina </a> ";
    			}
    		}
    	}
    	
    	//se la pag corrente è tra le prime $num_links/2 --> stampo i primi $nun_links link
    	elseif($pag <= ceil($num_links/2)){
    		for ($pagina=1; $pagina<=$num_links; $pagina++){
    			if ($pagina == $pag){
    				$menu .= "<span class=\"pag_selected\">[ $pagina ]</span> ";
    			}
    			else{
    				$menu .= "<a class=\"link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
    			}
    		}
    		$menu .= "<a class=\"link\" href=\"?pag={$numpages}{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a> ";
    	}
    				
    	//se la pag corrente è tra le ultime $num_links/2 --> stampo gli ultimi $nun_links link
    	elseif($pag > ($numpages-ceil($num_links/2))){
    		$menu .= "<a class=\"link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
    		for ($pagina=$numpages-$num_links+1; $pagina<=$numpages; $pagina++){
    			if ($pagina == $pag){
    				$menu .= "<span class=\"pag_selected\">[ $pagina ]</span> ";
    			}
    			else{
    				$menu .= "<a class=\"link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
    			}
    		}
    	}
    					
    	//Altrimenti la pagina corrente è una dell centrali --> stampo i $nun_links/2 link prima ed $nun_links/2 link dopo
    	else{
    		$menu .= "<a class=\"link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
    		for ($pagina = $pag-ceil($num_links/2-1); $pagina <= $pag+ceil($num_links/2-1); $pagina++){
    			if ($pagina == $pag){
    				$menu .= "<span class=\"pag_selected\">[ $pagina ]</span> ";
    			}
    			else{
    				$menu .= "<a class=\"link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
    			}
    		}
    		$menu .= "<a class=\"link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a> ";
    	}
    					
    	 //restituisco il risultato della query, e l'output del menu'
    	 return array($totJpgInFolder,$menu);
    }//CHIUDI FUNZIONE
    Aiutoooooo......grazie mille...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.