[risolto] Passaggio valore tramite link per selezione dati su database.

  • Creatore Discussione Creatore Discussione migo80
  • Data di inizio Data di inizio

migo80

Utente Attivo
25 Apr 2013
243
3
18
Salve vi chiedo nuovamente aiuto per il seguente problema: ho un lista di link chiamata categorie, ed ogni link mi passa come valore il suo nome che invio alla pagina di visualizzazione dei dati registrati sullla tabella in questo modo:
PHP:
<a href="animali-e-accessori.php?category=animali">Animali</a> <span><b>( <? include ("conteggio/annuncianimali.php")?> )</b></span>
questa è lo script che estrae i dati:

PHP:
$category = $_GET['category'];
include "conn2.php";
$data = time();
include ("tabelle/paginazioeinc.php");
$webpage = basename($_SERVER['PHP_SELF']);


$page = (!isset($_GET['page']))? 1 : $_GET['page'];

$results = mysql_query("SELECT id FROM computer WHERE categoria = '$category' ORDER BY id DESC");
$max_results = 3;//numero di elementi da visualizzare per pagina.
$total_results = mysql_num_rows($results);

$total_pages = ceil($total_results / $max_results);

$from = (($page * $max_results) - $max_results);

$result = mysql_query("SELECT * FROM computer WHERE categoria = '$category' ORDER BY id DESC LIMIT $from, $max_results");
while ($i = mysql_fetch_array($result))
{
$id = $i['id'];
$titolo = $i['titolo'];
$prezzo = $i['prezzo'];
$annuncio = $i['annuncio'];
$data = $i['data'];
...fin qui tutto funziona a meraviglia.
Il problema ce l' ho con la paginazione che ovviamente non torva l'url questo di seguito è lo script delle paginazione:

PHP:
function pagination_3($total_pages,$page,$webpage){ //imposto la mia $webpage come parametro formale
    echo '<br/>';
	echo '<center>'; 
	$category=$_GET['category'];   
$pagination = ""; 
    if($total_pages!=0){ 
        if($page>'1') 
            { 
		
          $pagination.="<a style='text-decoration:none' href=".$webpage."?page=1 title='Prima Pagina' ><img  src='../tabelle/--1.png' wight='20px' height='20px'></a> 
                                 <a style='text-decoration:none'  href=".$webpage."?page=".($page-1)." title='Precedente'><img  src='../tabelle/-1.png' wight='20px' height='20px'></a>"; 
            } 

        //Impostiamo il massimo numero di links di partenza da visualizzare nella pagina. 
             $maximum_links = 20; 

          //Se sono necessarie meno pagine rispetto al numero massimo 
           if($total_pages<=$maximum_links) 
            { 
               //Il numero massimo di links che occorreranno saranno pari al numero totale di pagine + 1 
                $maximum_links = $total_pages+1; 
            } 
            //Se ne sono necessarie di piu, allora: 
           else{ 
                  //$maximum_links +1 
                  $maximum_links=$maximum_links+1; 
                   if($page>=$maximum_links){ 
                       $maximum_links=$page+1; 
                    } 
              } 

        for ($i=1;$i<$maximum_links;$i++) 
               { 

                   if($i==$page){ 
                $pagination.="<a>".$i."</a>"; 
            } 

            else{ 
                $pagination.= "<a href=".$webpage."?page=".$i.">".$i."</a>&nbsp;"; 
                        } 
        } 

            //next e ultima pagina; 

        if(($page >="1")&&($page!=$total_pages)){ 
            $pagination.= "<a style='text-decoration:none' href=".$webpage."?page=".($page+1)." title='Successiva'><img  src='../tabelle/+1.png' wight='20px' height='20px'></a> 
                                        <a style='text-decoration:none' href=".$webpage."?page=".$total_pages." title='Ultima Pagina'><img  src='../tabelle/++1.png' wight='20px' height='20px'></a>".'<br/><br/>'; 
        } 

    } 
    else{ 
        $pagination.=""; 
    } 
    return($pagination); 

} 
echo '</center>';
//il risultato di questa paginazione è il seguente :
//prima PREV 1 2 3 4 5 6 7 8 9 10 Next ultima

Como posso adattare anche la paginazione con il cambio dell' url? :dipser:
 
Risolto da me!!. posto il tutto se dovesse servire ad altri.

Script per estrazione dati da tabella:
PHP:
include "conn2.php";    //inclusione connessione e selezione database

$data = time();

include ("tabelle/paginazioeinc.php"); //inclusione funzione per paginazione dei record

$webpage =  basename($_SERVER['PHP_SELF']."?category=$_REQUEST[category]");

 
$page = (!isset($_GET['page']))? 1 : $_GET['page'];

$category = $_REQUEST['category'];

$results = mysql_query("SELECT id FROM computer WHERE categoria = '$category'  ORDER BY id DESC");

$max_results = 3;//numero di elementi da visualizzare per pagina.

$total_results = mysql_num_rows($results);

$total_pages = ceil($total_results / $max_results);

$from = (($page * $max_results) - $max_results);

$result = mysql_query("SELECT * FROM computer WHERE categoria = '$category' ORDER BY id DESC LIMIT $from, $max_results");

while ($i = mysql_fetch_array($result))
{
$id = $i['id'];
$titolo = $i['titolo'];
$prezzo = $i['prezzo'];
$annuncio = $i['annuncio'];
$data = $i['data'];

include ("tabelle/computertab.php");

 
 }
echo $webpage;
 echo pagination_3($total_pages,$page,$webpage);

mysql_close();
?>

Questo è invece lo script della funzione di paginazione e dove ho apportato la modifica per far funzionare il tutto:

PHP:
function pagination_3($total_pages,$page,$webpage){ //imposto la mia $webpage come parametro formale, la variabile $webpage è dichiarata nello script di visualizzazione

    echo '<br/>';
	echo '<center>';

 $category = $_GET['category'];	  
$pagination = ""; 
    if($total_pages!=0){ 
        if($page>'1') 
            { 
		
//la modifica che ho apportato rispetto allo script originale è in questo punto: "&page" al posto di "?page".

          $pagination.="<a style='text-decoration:none' href=".$webpage."&page=1 title='Prima Pagina' ><img  src='../tabelle/--1.png' wight='20px' height='20px'></a> 
                                 <a style='text-decoration:none'  href=".$webpage."&page=".($page-1)." title='Precedente'><img  src='../tabelle/-1.png' wight='20px' height='20px'></a>"; 
            } 

        //Impostiamo il massimo numero di links di partenza da visualizzare nella pagina. 
             $maximum_links = 20; 

          //Se sono necessarie meno pagine rispetto al numero massimo 
           if($total_pages<=$maximum_links) 
            { 
               //Il numero massimo di links che occorreranno saranno pari al numero totale di pagine + 1 
                $maximum_links = $total_pages+1; 
            } 
            //Se ne sono necessarie di piu, allora: 
           else{ 
                  //$maximum_links +1 
                  $maximum_links=$maximum_links+1; 
                   if($page>=$maximum_links){ 
                       $maximum_links=$page+1; 
                    } 
              } 

        for ($i=1;$i<$maximum_links;$i++) 
               { 

                   if($i==$page){ 
                $pagination.="<a>".$i."</a>"; 
            } 

            else{ 
                $pagination.= "<a href=".$webpage."&page=".$i.">".$i."</a>&nbsp;"; 
                        } 
        } 

            //next e ultima pagina; 

        if(($page >="1")&&($page!=$total_pages)){ 
            $pagination.= "<a style='text-decoration:none' href=".$webpage."&page=".($page+1)." title='Successiva'><img  src='../tabelle/+1.png' wight='20px' height='20px'></a> 
                                        <a style='text-decoration:none' href=".$webpage."&page=".$total_pages." title='Ultima Pagina'><img  src='../tabelle/++1.png' wight='20px' height='20px'></a>".'<br/><br/>'; 
        } 

    } 
    else{ 
        $pagination.=""; 
    } 
    return($pagination); 

} 
echo '</center>';
//il risultato di questa paginazione è il seguente :
//prima PREV 1 2 3 4 5 6 7 8 9 10 Next ultima
 

Discussioni simili