Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 27-02-07, 16:59   #1 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
dividere in pagine i risultati

In pratica ho questo codice che mostra le informazioni di ogni singolo utente e le mostra su ogni riga:


Codice PHP:
   for($i=0;$i<$c1;$i++)
    {
        
//show each user
        
$each def($users[$i], "./db/users");
    

    
        echo 
"$each[id]-$each[email]";


Il problema è che però tutto questo mi viene mostrato solo su una singola pagina, e potete immaginare come su 1400 risultati, un qualsiasi browser possa andare in crash.

Come si fa a dividerle in pagine dove ogni pagina ne contiene solo 50 e cosi via?

Del tipo view.php?pagina=2 e vedo gli altri 50 ecc.....

Per quanto riguarda l'input cioè le caselle dei messaggi per girare pagina ce l'ho già, ma è il sistema che divide i risultati che mi manca.

Ciao
alessiofbt non in linea   Rispondi citando
Vecchio 27-02-07, 17:30   #2 (permalink)
User Attivo
 
L'avatar di probid
 
Data di registrazione: Aug 2006
Ubicazione: Foligno (PG)
Messaggi: 1,822
Invia un messaggio tramite MSN a probid
Ciao alessiofbt,
$c1 è un'array con tutti i risultati giusto?
Prova questo ma nn sono sicuro del funzionamento :
Codice PHP:
<?php 
class Pager 

function 
getPagerData
($numHits$limit$page

$numHits  = (int) $numHits
$limit    max((int) $limit1); 
$page     = (int) $page
$numPages ceil 
($numHits $limit); 
$page max($page1); 
$page min($page$numPages); 
$offset = ($page 1) * $limit
$ret = new stdClass
$ret->offset   $offset
$ret->limit    $limit
$ret->numPages $numPages
$ret->page     $page
return 
$ret


    
$page $_GET['page']; 
    
$limit 50
    
$total count($c1);
$pager  Pager::getPagerData($total$limit$page); 
    
$offset $pager->offset
    
$limit  $pager->limit
    
$page   $pager->page;
for(
$i=0;$limit<$c1>$offset;$i++) 
    { 

        
$each def($users[$i], "./db/users"); 
     

     
        echo 
"$each[id]-$each[email]"

}  

    if (
$page == 1)
        echo 
"Precedenti"
    else
        echo 
"<a href=\"pagina.php?page=" . ($page 1) . "\">Precedente</a>";
 for (
$i 1$i <= $pager->numPages$i++) { 
        echo 
" | "
        if (
$i == $pager->page
            echo 
"Page $i"
        else 
            echo 
"<a href=\"pagina.php?page=$i\">Page $i</a>"
    }
 if (
$page == $pager->numPages)
        echo 
"Prossime"
        echo 
"<a href=\"pagina.php?page=" . ($page 1) . "\">Prossima</a>"
?>
Fonte: http://www.phpnoise.com/tutorials/9/1
__________________
Moderatore in pensione

Ultima modifica di probid : 27-02-07 17:37.
probid non in linea   Rispondi citando
Vecchio 27-02-07, 17:56   #3 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
Mi da questo errore

Parse error: syntax error, unexpected '>'

alla riga dove c'è

for($i=0;$limit<$c1>$offset;$i++)

?
alessiofbt non in linea   Rispondi citando
Vecchio 28-02-07, 15:25   #4 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
up
alessiofbt non in linea   Rispondi citando
Vecchio 02-03-07, 03:20   #5 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
up
alessiofbt non in linea   Rispondi citando
Vecchio 18-03-07, 23:28   #6 (permalink)
Moderatore
 
L'avatar di Digital Daigor
 
Data di registrazione: Feb 2007
Ubicazione: Torquay, QLD, Australia
Messaggi: 674
Invia un messaggio tramite MSN a Digital Daigor Invia un messaggio tramite Skype a Digital Daigor
prova questo

$_utenti_query_n = mysql_query("SELECT COUNT(id) FROM $tb_gst_user");//conto i records
$_utenti_query = mysql_fetch_array($_utenti_query_n);
$_utenti_n = $_utenti_query[0];//prendo il risultato

$_utenti_p_p = 50;//num records da visualizzare

$_utenti_p = htmlspecialchars($_GET['pg']);
if(ereg("[0-9]",$_utenti_p)==false or $_utenti_p >= $_utenti_n or $_utenti_p < 0)
{
$_utenti_p = 0;
}

$_utenti_query = mysql_query("SELECT * FROM $tb_gst_user ORDER BY nome LIMIT $_utenti_p, $_utenti_p_p");


+ o - questo lo fatto al momento, sul sito c'è molto migliore
html.it, c'è uno script molto migliore
Digital Daigor ora è in linea   Rispondi citando
Vecchio 17-06-07, 23:31   #7 (permalink)
User
 
Data di registrazione: May 2007
Messaggi: 16
Exclamation

Salve ragazzi,
pensavo di aver risolto il problema dell'impaginazione dei risultati ma ora che sto inserendo i dati mi accorgo di una cosa, _cioè che se io adesso faccio una ricerca con un valore (ad esempio provincia Chieti) _mi dice si quanti risultati ci sono e in quante pagine me li divide (2) e mi fa vedere i primi 5 ma se clicco sulla seconda pagina non mi fa vedere la seconda parte ma mi fa vedere la seconda pagina come se cercassi con parametro (provincia :all).

Posto il codice:

Codice:
<?php 
            include("include/connector.inc"); 
            $ricerca = $_POST['ricerca']; 
             
            if($ricerca=="vero"){ 
            $localita = strtolower($_POST['localita']); 
            $citta = strtolower($_POST['citta']); 
            $regione = strtolower($_POST['regione']); 
            $stato = strtolower($_POST['stato']); 
             
            $cs = $_POST['CS']; 
            $aa = $_POST['AA']; 
            $ps = $_POST['PS']; 
            $camper_stop = $_POST['CAMPER-STOP']; 
            $wifi = $_POST['WI-FI']; 
            $gratis = $_POST['GRATIS']; 
            $pagamento = $_POST['PAGAMENTO'];} 
             
            //se ho indicato regione="tutte"... tolgo il valore dal campo regione 
            if($regione == "all"){ 
                $regione = ""; 
            }  
            if($citta == "all"){ 
                $citta = ""; 
            }              
            //a seconda dei parametri cremo condizioni per sql 
            if($localita!="") $where_localita = "and localita='$localita'";      
            if($citta!="") $where_citta = "and citta='$citta'"; 
            if($regione!="") $where_regione = "and regione='$regione'"; 
            if($stato!="") $where_stato = "and stato='$stato'"; 
             
            if($cs!="") $where_cs = "and cs=1"; 
            if($aa!="") $where_aa = "and aa=1"; 
            if($ps!="") $where_ps = "and ps=1"; 
            if($camper_stop!="") $where_camper_stop = "and camper_stop=1";             
            if($wifi!="") $where_wifi = "and wifi=1"; 
            if($gratis!="") $where_gratis = "and gratuito=1"; 
            if($pagamento!="") $where_pagamento = "and pagamento=1"; 
         
               $count = mysql_query("SELECT COUNT(id) FROM camperservice where id=id 
                $where_localita $where_citta $where_regione $where_stato $where_cs 
                $where_aa $where_ps $where_camper_stop $where_wifi $where_gratis"); 
               $res_count = mysql_fetch_row($count); 

               // numero totale di records 
               $tot_records = $res_count[0]; 
              // print (ci sono :"$tot_records");  

               // 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']) ? 1 : (int)$_GET['page']; 
                // primo parametro di LIMIT 
                $primo = ($current_page - 1) * $per_page; 
                 echo "<div align=\"center\">\n<table>\n"; 
                //print ("<span class='testonormale' align='left'><a href='index.php' class='Stile1'>nuova ricerca</a></span>"); 
                    // esecuzione seconda query con LIMIT 
                   $sql="select * from camperservice where id=id 
                $where_localita $where_citta $where_regione $where_stato $where_cs 
                $where_aa $where_ps $where_camper_stop $where_wifi $where_gratis limit $primo,$per_page";   
                       $result_sql=mysql_query($sql,$dbconn); 


                       if($result_sql!=""){ 
                       print "<table width='100%'>"; 
                    
                    //mostro elenco risultati  
                         while($row_sql=mysql_fetch_object($result_sql)){ 
                       //stringa di descrizione del cs 
                         
                        $tx_indirizzo = " $row_sql->localita, $row_sql->citta "; 
                         
                        if($row_sql->cs==1) $comp_cs = "<strong>CS</strong>"; 
                        else $comp_cs = ""; 

                        if($row_sql->aa==1) $comp_aa = "<strong>AA</strong>"; 
                        else $comp_aa = ""; 

                        if($row_sql->ps==1) $comp_ps = "<strong>PS</strong>"; 
                        else $comp_ps = ""; 

                        if($row_sql->camper_stop==1) $comp_camper_stop = "<strong>CAMPER-STOP</strong>"; 
                        else $comp_camper_stop = ""; 

                        if($row_sql->wifi==1) $comp_wifi = "<strong>WI-FI</strong>"; 
                        else $comp_wifi = ""; 

                        $tx_tipo = "$comp_cs $comp_aa $comp_ps $comp_camper_stop $comp_wifi"; 
                         
                         
                        //comp nome 
                        if(($row_sql->localita == $row_sql->citta)||($row_sql->citta == "")){ 
                            $tx_nome = "$row_sql->localita"; 
                        }else{ 
                            $tx_nome = "$row_sql->localita ($row_sql->citta)"; 
                        } 
                         
                         
                        $cs_box = "<table class='box' class='testonormale' align='left' width='50%'> 
                                                <tr> 
                                                    <td align='left'> 
                                                        <a href='detail.php?id_cs=$row_sql->id' class='Stile1'><b>$tx_nome</b></a> 
                                                    </td> 
                                                </tr> 
                                                <tr> 
                                                    <td align='left'> 
                                                        $tx_tipo 
                                                    </td> 
                                                </tr> 
                                                <tr> 
                                                    <td align='left'> 
                                                        $row_sql->indirizzo - $row_sql->localita ($row_sql->citta) 
                                                    </td> 
                                                </tr> 
                                            </table>"; 
                         
                         
                         
                        print ("<tr><td>$cs_box</td></tr>"); 
                      
                           
                    } 
                    include("paginazione.php"); 
                      // in questa cella inseriamo la paginazione 
                  echo " <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n"; 

                  echo " </tr>\n\n</div>"; 
                    print "</table>"; 
                }else{ 
                    print ("<span class='testonormale'>Nessun CamperService trovato</span>"); 
                } 
                print ("<br><span class='testonormale' align='left'><a href='index.php' class='Stile1'>nuova ricerca</a></span>"); 
                         
             
     ?>
Questa è la pagina di gestione pagine:
Codice:
<?php 

$paginazione = "Pagine totali: " . $tot_pages . " 
["; 
for($i = 1; $i <= $tot_pages; $i++) { 
if($i == $current_page) { 
$paginazione .= $i . " "; 
} else { 
$paginazione .= "<a href=\"?page=$i\" title=\"Vai alla pagina $i\">$i</a> "; 
} 
} 
$paginazione .= "]"; 

?> 

Ultima modifica di Andrez : 15-06-09 11:04. Motivo: usa correttamente maiuscole e punti, scrivi in italiano corretto ed evita eccessi di emoticon.
zumo non in linea   Rispondi citando
Rispondi
Tags: , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:49.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.