Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    valore variabile persa in paginazione

    Salve a tutti.
    Ho un problema.
    Passo attraverso un form il valore di una variabile ad una pagina. Questo valore mi serve nella pagina di destinazione,in una Function showricetta, come criterio in una query per estrarre dei record da una tabella.
    Questi ultimi inoltre li voglio vedere con Paginazione.

    Il Problema è che quando vado ad eseguire la paginazione, mi perde il valore della variabile che mi serve come criterio nella query
    Codice PHP:
     $Seleziona=$_GET['selectCriterio']; //imposta la variabile per il tipo di ricerca:tipologia, ingredienti, tempo di cottura, difficoltà 
    ,
    e quindi mi vede la prima pagina, ma cliccando le altre ovviamente NO. Senza possibilità di tornare indietro alla prima.
    ecco il codice:

    Codice PHP:
    Function showricetta($flag,$CriterioRicerca,$CampoRicerca){
    session_start();//Iniziamo la sessione  

    //$ CriterioRicerca è una variabile di SESSIONE. quando è impostata ad: 1,2,3 ; esegue la ricerca con i criteri di $Seleziona, sennò esegue la ricerca per IdAutore
    $Seleziona=$_GET['selectCriterio']; //imposta la variabile per il tipo di ricerca:tipologia, ingredienti, tempo di cottura, difficoltà

    REQUIRE ('connessione.php');

    Print(
    "utente".$flag);
    echo
    "
    "
    ;
    Print(
    "Tipologia o Difficoltà o Tempo Cottura".$CriterioRicerca);
    echo
    "
    "
    ;
    Print(
    "valore del campo".$Seleziona);
    echo
    "
    "
    ;


    $sql="SELECT * from Ricetta where Tipologia='$Seleziona'";
    $risultato_query=mysql_query($sql,$connessione) or die ("".mysql_error());



    $res_count=mysql_num_rows($risultato_query);
    // numero totale di records
    $tot_records $res_count;

    // risultati per pagina(secondo parametro di LIMIT)
    $per_page =5;

    // numero totale di pagine
    $tot_pages ceil($tot_records $per_page);

    // pagina corrente
    $current_page = (!$_GET['page']) ? : (int)$_GET['page'];

    // primo parametro di LIMIT
    $primo = ($current_page 1) * $per_page;


    // esecuzione seconda query con LIMIT

    $sql2="SELECT * from Ricetta where Tipologia='$Seleziona' ORDER BY TitoloRicetta DESC LIMIT $primo$per_page";
    $select = @mysql_query($sql2) or die("Query fallita2 !"mysql_error()); 

    $i=0;
    while(
    $riga=mysql_fetch_array($select)){
         
                 
    $IdRicetta=$riga["IdRicetta"];
                 
    $TitoloRicetta=$riga["TitoloRicetta"];
                 
    $Tipologia=$riga["Tipologia"] ;
                 
               


    if(
    is_int($i/3)){ 
    $color "#FFFFFF"
    }else{ 
    $color"#0573FB"



    if (
    $Tipologia==1)
        
    $Tipologia="PRIMO";
        if (
    $Tipologia==2)
        
    $Tipologia="SECONDO";
    if (
    $Tipologia==3)
        
    $Tipologia="DOLCE";
    echo
    "

      <tr> 
        <td  bgcolor=\"
    $color\">$IdRicetta</td>
        <td  bgcolor=\"
    $color\"><A HREF=\"ricetta.php?IdRicetta=$IdRicetta\"> $TitoloRicetta</a></td>
        <td  bgcolor=\"
    $color\">$Tipologia</td>
      </tr>"
    ;
      }
     include(
    "paginazione_1.php");
    //include("paginazione_2.php");

    // in questa cella inseriamo la paginazione


      
    echo"</table>";

    echo 
    " <p class=\"newstesto\"$paginazione</p>";

    paginazione_1.php
    Codice PHP:

    <?php 


    if($current_page == 1) { // se siamo nella prima pagina 
    $precedente "<< precedente"
    } else { 
    // altrimenti 
    $previous_page = ($current_page 1); 
    $precedente "<a href=\"?Tipologia=$Seleziona&page=$previous_page\" title=\"Vai alla pagina precedente\"><< precedente</a>"

    /* come noti il link sia verso la pagina precedente sia verso quella successiva deve contenere il parametro GET "elencotabelle" */ 

    if($current_page == $tot_pages) { // se siamo nell'ultima pagina 
    $successiva "successiva >>"
    } else { 
    // altrimenti 
    $next_page = ($current_page 1); 
    $successiva "<a href=\"?Tipologia=$Seleziona&page=$next_page\" title=\"Vai alla pagina successiva\">successiva >></a>"




    $paginazione2.= "[ ";

    for(
    $i $current_page <1:$current_page $i <= $tot_pages && $i<=($current_page+<5$current_page+); $i++) {
    if(
    $i == $current_page) {
    $paginazione2 .= $i " ";
    } else {
    $paginazione2 .= "<a href=\"?Tipologia=$Seleziona&page=$i\" >$i</a> ";
    }
    }
    $paginazione2 .= "]";



    $paginazione "$precedente ".$paginazione2.   $successiva";





    ?>
    Come posso sistemarlo?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480

    Re: valore variabile persa in paginazione

    Come posso sistemarlo?
    Grazie
    Butta tutto e ricomincia da capo.
    Così non si capisce niente, è un casino in cui mescoli output, variabili, query e quant'altro.
    Devi separare, separare, separare.
    Magari potresti iniziare implementando una paginazione da una classe esterna (perché inventarla di nuovo?), come http://pear.php.net/package/Pager

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.