Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118

    problemi con la paginazione

    Ciao ragazzi,

    ho problemi con la paginazione, quando deve passare alla seconda pagina mi ripresenta il form

    Codice PHP:
    <?php    
        
        $errori 
    = array();

        if (isset(
    $_POST['invia'])) {
            if (
    $regioni == "") {
                
    $errori[0] = "il campo &egrave; necessario
    "
    ;
            }
        
            if (
    $errori == FALSE) {

                
    //istruzioni sql

                
    include('connessione.php');

                
    // Escape dei campi del form 
                
    $regioni   mysql_real_escape_string($_POST['regioni']); 
                
    $provincia mysql_real_escape_string($_POST['provincia']);
                
    $struttura mysql_real_escape_string($_POST['struttura']); 


                
    $condizioni_query = array(); 

                
    // Costruiamo le istruzioni SQl per selezionare i record desiderati, basandoci sulle checkbox selezionate 
                // Ogni servizio spuntato implicherà la ricerca dei record che hanno il relativo campo settato a 1 
                
                
    if (count($_POST['servizio'])) { 
                  
    $function create_function('$servizio''return "$servizio = 1";'); 
                  
    $condizioni_query array_map($function$_POST['servizio']); 
                } 

                if (
    $regioni
                    
    $condizioni_query[] = "regioneazienda = '$regioni'"

                if (
    $provincia != 'tutte'
                    
    $condizioni_query[] = "provincia = '$provincia'";

                if (
    $tipoazienda != 'tutte'
                    
    $condizioni_query[] = "tipoazienda = '$tipoazienda'";

                
    // Costruiamo la clausola WHERE solo se sono stati selezionati i campi di ricerca 
                
    if ($condizioni_query
                    
    $clausola_where 'WHERE 'implode(' AND '$condizioni_query); 
                   
                
                
    $max 3//amount of articles per page. change to what to want
                
    $p $_GET['p'];

                if(empty(
    $p)){
                    
    $p 1;
                }

                
    $limits = ($p 1) * $max

                
    //view all the news articles in rows

                
    $sql mysql_query("SELECT * FROM $table02 $clausola_where LIMIT ".$limits.",$max") or die(mysql_error());

                
    //the total rows in the table

                
    $totalres mysql_result(mysql_query("SELECT COUNT(id) AS tot FROM scheda"),0);    

                
    //the total number of pages (calculated result), math stuff...

                
    $totalpages ceil($totalres $max); 


                if (
    $totalres == 0) {
                    echo 
    "La ricerca non ha prodotto nessun risultato";
                }else{

                    while(
    $r mysql_fetch_array($sql)) {
                        
    $id $r['id'];
                        
    $tipoazienda $r['tipoazienda'];
                        
    $nomeazienda $r['nomeazienda'];
                        echo 
    "[url='index.php?act=view&id=$id']$nomeazienda[/url]
    "
    //view
                    
    }

                    for(
    $i 1$i <= $totalpages$i++){ 
                        
    //this is the pagination link
                        
    echo "[url='index.php?p=$i']$i[/url] | ";
                    }
                }
                
                
                
            }
        
        }else{
            
    $errori TRUE;
        }

        if(
    $errori == TRUE) {
        
        
    ?>
            <form method="POST" >
                Regioni:<select onchange=setCities(this) name="regioni">
                    <option value="" selected="selected">Seleziona la sezione:</option>
                    <option value="calabria">Calabria</option>
                    <option value="sicilia">Sicilia</option>
                    <option value="lombardia">Lombardia</option>
                </select><? echo $errori[0]; ?>
                

                Provincia:<select name="provincia" class="contenuto">
                    <option value="tutte" selected="selected">--------------</option>
                </select>
                


                Tipologia struttura:
                <select id="" name="tipoazienda">
                    <option value="tutte" selected="selected">Tutte</option>
                    <option value="agriturismo">Agriturismo</option>
                    <option value="bedandbreakfast">Bed and Breakfast</option>
                    <option value="hotel">Hotel</option>
                </select>
                


                Vini<input type="checkbox" name="servizio[]" value="vini" />

                Ristorante<input type="checkbox" name="servizio[]" value="ristorante" />

                equitazione<input type="checkbox" name="servizio[]" value="equitazione" />

                parcheggio<input type="checkbox" name="servizio[]" value="parcheggio" />

                internet<input type="checkbox" name="servizio[]" value="internet" />

                <input type="submit" name="invia" value="Invia la richiesta" />
            </form>

        <?
            
    }
        
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    ciao ragazzi,

    avete qualche input in merito al mio post? sicuramente il problema è qui

    Codice PHP:
    if (isset($_POST['invia'])) { 
    ma non ho idea di come risolverlo

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    Ciao ragazzi, alla fine ho cambiato script per l'invio e la paginazione dei dati nella stessa pagina.

    Ora lo script che ho fatto funziona a metà... ho il problema della paginazione che appare prima di iniziare la ricerca e non mi tira fuori "La ricerca non ha prodotto nessun risultato" se non sono presenti dati.

    Probabilmente per tutto sbaglio la posizione della seconda parte dello scrip

    Codice PHP:
    <?php

    function crea_url($url_base$pagina) {
        if(
    strpos($url_base,'?') === false) {
            return 
    $url_base '?pag=' $pagina;
        } else {
            return 
    $url_base '&amp;pag=' $pagina;
        }
    }

    function 
    crea_link($url_base$pagina_corrente$numero_pagina) {
        if(
    $pagina_corrente == $numero_pagina) {
            return 
    "[$numero_pagina]";
        } else {
            return 
    '[url="' crea_url($url_base$numero_pagina) . '"]' $numero_pagina '[/url]';
        }
    }

    // funzione che crea i link alle pagine dei risultati
    function paginazione($tot_pagine$url_base$pagina_corrente$pagine_vicine) {
        
    $link_paginazione "Pagine: ";
      
        
    // link alla pagina precedente
        
    if($pagina_corrente != 1) {
            
    $link_paginazione .= '[url="' crea_url($url_base$pagina_corrente 1) . '"]&laquo;[/url] ';
        }
      
        
    // mostriamo sempre il link alla prima pagina
        
    $link_paginazione .= crea_link($url_base$pagina_corrente1);
      
        
    // se il prossimo link non è alla seconda pagina aggiungo dei puntini ...
        // oppure la sola pagina mancante
        
    if($pagina_corrente $pagine_vicine 2) {
            if(
    $pagina_corrente $pagine_vicine == 3) {
                
    $link_paginazione .= " " crea_link($url_base$pagina_corrente2);
            } else {
                
    $link_paginazione .= " ... ";
            }
        }
      
        
    // creo i link alla pagina corrente ed a quelle ad essa vicine
        
    for($i $pagina_corrente $pagine_vicine$i <= $pagina_corrente $pagine_vicine$i++) {
             
    // se tra quelle vicine c'è la prima pagina (già riportata)
            
    if($i 2) continue;
          
             
    // se tra quelle vicine c'è l'ultima pagina (che mostrerò con le prossime istruzioni)
            
    if($i $tot_pagine 1) continue;
          
            
    $link_paginazione .= " " crea_link($url_base$pagina_corrente$i);
        }
      
        
    // se il precedente link non era alla penultima pagina aggiungo dei puntini ...
        // oppure la sola pagina mancante
        
    if($pagina_corrente $pagine_vicine $tot_pagine 1) {
            if(
    $pagina_corrente $pagine_vicine == $tot_pagine 2) {
                
    $link_paginazione .= " " crea_link($url_base$pagina_corrente$tot_pagine 1) . " ";
            } else {
                
    $link_paginazione .= " ... ";
            }
        }
      
        
    // mostriamo il link all'ultima pagina se questa non coincide con la prima
        
    if($tot_pagine != 1) {
            
    $link_paginazione .= " " crea_link($url_base$pagina_corrente$tot_pagine);
        }
      
        
    // link alla pagina successiva
        
    if($pagina_corrente != $tot_pagine) {
            
    $link_paginazione .= ' [url="' crea_url($url_base$pagina_corrente 1) . '"]&raquo;[/url]';
        }
      
        return 
    $link_paginazione;
    }

    //--------------------------------------------------------------------
    //                    SCRIPT PAGINAZIONE DATI 

    $DB_host     'localhost';
    $DB_user     'root';
    $DB_password '';
    $DB_name     'test2';

    $righe_per_pagina 3;
    $url_base "index.php";
    $pagine_vicine 1;

    // ----------------------------------------------------------------
    //         C O N N E S S I O N E   A L   D A T A B A S E

    $link mysql_connect($DB_host$DB_user$DB_password);
    if (!
    $link) {
        die (
    'Non riesco a connettermi: ' mysql_error());
    }

    $db_selected mysql_select_db($DB_name$link);
    if (!
    $db_selected) {
        die (
    "Errore nella selezione del database: " mysql_error());
    }

    // ----------------------------------------------------------------
    //    C A L C O L O   D E L   N U M E R O   D I   P A G I N E
     
    // ricavo il numero totale di record
    $query "SELECT COUNT(*) FROM scheda";
    $result mysql_query($query);
    // record complessivi
    $tot_righe mysql_result($result,0);
    // totale pagine
    $tot_pagine ceil($tot_righe $righe_per_pagina);

    // ----------------------------------------------------------------
    //                 P A G I N A   C O R R E N T E

    $pagina_corrente = isset($_GET['pag']) ? (int)$_GET['pag'] : 1;

    // se la pagina corrente è minore di 1
    if($pagina_corrente 1)  {
        
    header('location: ' $url_base);
        exit();
    }

    // se la pagina corrente è maggiore dell'ultima pagina
    if($pagina_corrente $tot_pagine) {
        
    header('location: ' crea_url($url_base$tot_pagine));
        exit();
    }

    // ----------------------------------------------------------------
    //            E S T R A Z I O N E   D E I   R E C O R D

    // calcolo la prima riga da estrarre con la query
    $prima_riga = ($pagina_corrente 1) * $righe_per_pagina;

    session_start();

    if(isset(
    $_GET["regioni"])){
       
    $_SESSION['regioni']=$_GET["regioni"];
    }


    $query "SELECT * FROM scheda WHERE regione = '{$_SESSION['regioni']}' LIMIT $prima_riga$righe_per_pagina";

    $result mysql_query($query);
    if (!
    $result) {
        die(
    "Errore nella query $query: " mysql_error());
    }

    $elenco_comuni = array();
    while (
    $row mysql_fetch_assoc($result)) {
        
    $elenco_comuni[] = $row;
    }

    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Elenco Comuni Italiani</title>
    </head>
    <body>


    <form action="index.php" method="GET">
        Regioni: <input type="text" id="regioni" name="regioni" />
        <input type="submit" id="cerca" name="cerca" value="Cerca"/>
    </form>



    <?php

    if ($tot_pagine == 0
    {
        echo 
    "La ricerca non ha prodotto nessun risultato";
    }
    else
    {
        foreach(
    $elenco_comuni as $riga)        //while($r = mysql_fetch_array($data)) {
        
    {
            echo  
    $riga['struttura'];
        }

        
    // creazione dei link di paginazione
            
    $link_paginazione paginazione($tot_pagine$url_base$pagina_corrente$pagine_vicine); 
            
    //this is the pagination link
            
    echo "echo $link_paginazione";
            
    }

    ?>


    </body>
    </html>

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.