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

    Pagina News divisa in pagine da 10

    Allora innanzitutto volevo un parere sulla home che sto costruendo a livello estetico, leggibilità etc... eventuali caratteri e grandezza di font da utilizzare per la pagina http://pescaedintorni.altervista.org

    Il quesito che vi pongo è: volevo fare in modo che ogni 10 news estratte dal DB venisse creata una pagina con le seconde dieci e così via e relativi link a inizio e fine pagina....

    Magari lasciando un link diretto alle prime 10 pagine più un collegamento alla seconda trance da 10 pagine e all'ultima pagina e alla prima un po' come succede in molte news....

    Solo che non ho la benche minima idea di come funziona la situazione visto che sono all'inizio con il php e mastigo a grandi linee l'SQL...

    Inoltre mi piacerebbe fare in modo che si ricaricasse solamente il content e rimangano fissi header, navigation e footer...

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    170
    Ciao.
    Carino il sito però io farei il testo di un colore un po più contrastante visto che ho letto due linee di news e mi fanno male gli occhi :-).

    Per il resto basta che fai una ricerca e troverai milioni di post sulla paginazione di risultati.
    Basta dare un LIMIT 0,10 alla tua query e te ne spuntano solo le prime dieci poi fai LIMIT 10,20 e ti spuntano le altre 10, basta portarti da pagina a pagina da quale record partire.
    Comunque ti ripeto che se fai una ricerca tipo "paginare mysql php", "impaginare record mysql con php" bhu fai tu dovresti trovare un bel po di aiuti anche in questo forum stesso.
    Io non ti posso aiutare xchè sono sull' asp.Net e asp con MYSql di php ne so poco anche se penso sia migliore, per altri problemi devo stare su asp.

    Spero di averti aiutato ciao!

  3. #3
    Alla fine sono riuscito a sistemare l'impaginazione solo che non capisco perchè mi funziona il link a pagina precedente mentre a pagina sucessiva no eppure cambia solo che passo prova.php?page+1 anzichè page-1

    Praticamente cliccando a su sucessiva ricarica la pagina 1 come se non incrementasse oppure come se la variabile fosse inizializzata a 1 valore inferiore....

    Consigli...

    http://pescaedintorni.altervista.org/prova.php

  4. #4
    Se vuoi farlo bene, c'è questo capitolo della guida che fa al caso tuo
    http://php.html.it/guide/lezione/228...-gli-articoli/

  5. #5
    ma io non devo elencare degli articoli devo leggere le news da un database e elencarle dividendole in pagine da 10 con relativi link in fondo e in cima...

  6. #6
    è la stessa cosa, devi solo adattarla

  7. #7
    Forse ho sistemato vi scrivo il codice così mi dite se è pulito il risultato lo trovate a http://pescaedintorni.altervista.org/prova.php
    ovviamente manca ancora la grafica dei link a fondo pagina...

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
    <title>
        Pesca e Dintorni
    </title>
    <meta http-equiv="Content-type" content='text/html; charset="UTF-8"' />
    <meta name="author" content="Luigi Liccardi" /> 
    <meta name="copyright" content="Luigi Liccardi" /> 
    <meta name="description" content="Home Page Pesca e Dintorni" /> 
    <meta http-equiv="keywords" content=" " />
    <link rel="stylesheet" type="text/css" href="jsmenu.css"/>
    <link rel="stylesheet" type="text/css" href="Base.css" />
    <script type="text/javascript" src="expandOne.js"></script>
    </head>
    <body>
        <div id="container">
            <div id="header">
                
            </div>
            <div id="navigation">
                <div id="nav">
                    <ul id="menu">
                        [*]<h4>[url="index.php"]News[/url]</h4>
                        [*]<h4>Articoli &gt;</h4>
                            <ul>
                                [*][url="amare.php"]– Mare[/url]
                                [*][url="aacque_interne.php"]– Acque Interne[/url]
                            [/list]
                        
                        [*]<h4>Itinerari &gt;</h4>
                            <ul>
                                [*][url="imare.php"]– Mare[/url]
                                [*][url="iacque_interne.php"]– Acque Interne[/url]
                            [/list]
                        
                    [/list]
                                
                </div>            
            </div>    
            <div id="content"> 
                News
                <?php  
                
    // richiamo il file di configurazione  
                
    require 'config.php';  
                
    // richiamo lo script responsabile della connessione a MySQL  
                
    require 'connect.php';
                
    //Preparazione Query e impaginazione
                
    $limit 10//Numero di News per pagina
                
    $query "SELECT * FROM news";
                
    $result mysql_query($query); //faccio la query 
                
    $total_row mysql_num_rows($result); //Numero totale di record
                
    $total_page ceil($total_row/$limit); //Numero totale di pagine da visualizzare
                
    $page=1;
                
    $offset$page 1;
                if (isset(
    $_GET['page'])) 
                    {
    $page $_GET['page'];
                     
    $offset $page 1;
                     
    $offset $offset $limit;
                    }
                
    $query "SELECT *, DATE_FORMAT(Data, '%d-%m-%Y') AS new_data FROM news ORDER BY new_data DESC limit $offset$limit";
                
    // invio la query  
                
    $result mysql_query($query);  
                
    //Controllo esito Query  
                
    if (!$result
                    {die(
    "Errore nella query $query: " mysql_error());  
                    }  
                while (
    $row mysql_fetch_assoc($result)) 
                    {echo 
    "
                        <div class='news_container'>
                        <div class='news_date'>
                            
    $row[new_data]
                        </div>
                        <div class='news_title'>
                            
    $row[Titolo]
                        </div>
                        

                        <div class='news_desc'>
                            

                            
    $row[Descrizione]
                            

                            

                        </div>
                        <div class='news_author'>
                            Autore:
    $row[Autore]
                        </div>
                        </div>
                     "
    ;
                    }
                
    // Impaginazione
                
    if ($total_page !=1)
                    {if (
    $page == 1// prima pagina?
                        
    {echo "Prima|"//non linkabile
                          
    echo "Precedente"//non ci sono precedenti 
                         
    }
                    
                     else
                        {echo 
    "[url='prova.php']Prima|[/url]"//link alla prima pagina
                         
    $page--;
                         echo 
    "[url='prova.php?page=$page']Previous[/url]"//link alla pagina precedente
                         
    }
                      
    $page $_GET['page'];    
                     for (
    $i 1$i <= $total_page$i++) 
                        {echo 
    " | "
                         if (
    $i == $page
                            {echo 
    "Pagina $i";
                            }
                         else
                             {echo 
    "[url='prova.php?page=$i']Pagina $i[/url]";
                             }
                         }
                     if (
    $page == $total_page// ultima pagina?
                        
    {echo "|Prossima"// non ci sono prossime 
                          
    echo "|Ultima"// non linkabile
                        
    }        
                     else
                        {
    $page++;
                         echo 
    "[url='prova.php?page=$page']|Prossima[/url]";//link alla prossima pagina
                          
    echo "[url='prova.php?page=$total_page']|Ultima[/url]"//link all'ultima pagina
                        
    }
                    }

                
                     
                
    ?>      
            </div>
            <div id="footer">
                Writed & Designed By Balu Persli
                

                October 2007
            </div>
        </div>
    </body>
    </html>

  8. #8
    Scusate c'era un'errore prima del ciclo for avevo dato un
    Codice PHP:
     $page $_GET['page']; 
    ma ovviamente c'era un'errore perchè in home appena apera non c'era nessun dato passato alla pagina quindi se non erro quando non c'è nessun dato
    Codice PHP:
     $page $_GET['page']; 
    va in "false" e dovrebbe assegnare 0 a $page....

    Quindi nel ciclio non entra nella condizione $page == i e mi linka la 1^ pagina anziche lasciarmela non linkabile perchè pagina corrente...

    Così ho sostituito con:

    Codice PHP:
     if (isset($_GET['page']))
         {
    $page $_GET['page'];
        } 
    Così che prende il dato solo se arriva da un'altra pagina se è in home invece rimane $page inizializzato a inizio script....

  9. #9
    Allora all'indirizzo http://pescaedintorni.altervista.org ho sistemato anche la grafica del menù di impaginazione l'unica cosa è che non so perchè mi canna l'ordinamento della query, dovrebbe ordinarmi in ordine decrescente le news per data e invece mi fa l'ordinamento prima di tutte le date del 2007 escluso il 4/12 poi mi piazza quelle del 2008 in ordine decrescente con in mezzo il 4/12/2007 la query è la stessa del codice passato sotto e cioè
    Codice PHP:
    $query "SELECT *, DATE_FORMAT(Data, '%d-%m-%Y') AS new_data FROM news ORDER BY new_data DESC limit $offset$limit"
    Se volete che riposto il codice modificato con la nuova grafica fate un fischio anche se non credo centri qualcosa visto che ho solo aggiunto 2 div per colorare e formattare il testo in base a se è o meno la pagina corrente...

  10. #10
    Alt sistemato era da ordinare non per new_data ma per Data lol.....

    Comunque vi riposto il codice tanto per sapere se ho scritto codice pulito e efficiente o se potevo scrivere qualcosa di più veloce e funzionale...

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
    <title>
        Pesca e Dintorni
    </title>
    <meta http-equiv="Content-type" content='text/html; charset="UTF-8"' />
    <meta name="author" content="Luigi Liccardi" /> 
    <meta name="copyright" content="Luigi Liccardi" /> 
    <meta name="description" content="Home Page Pesca e Dintorni" /> 
    <meta http-equiv="keywords" content=" " />
    <link rel="stylesheet" type="text/css" href="jsmenu.css"/>
    <link rel="stylesheet" type="text/css" href="Base.css" />
    <script type="text/javascript" src="expandOne.js"></script>
    </head>
    <body>
        <div id="container">
            <div id="header">
                
            </div>
            <div id="navigation">
                <div id="nav">
                    <ul id="menu">
                        [*]<h4>[url="index.php"]News[/url]</h4>
                        [*]<h4>Articoli &gt;</h4>
                            <ul>
                                [*][url="amare.php"]– Mare[/url]
                                [*][url="aacque_interne.php"]– Acque Interne[/url]
                            [/list]
                        
                        [*]<h4>Itinerari &gt;</h4>
                            <ul>
                                [*][url="imare.php"]– Mare[/url]
                                [*][url="iacque_interne.php"]– Acque Interne[/url]
                            [/list]
                        
                    [/list]
                                
                </div>            
            </div>    
            <div id="content"> 
                News
                <?php  
                
    // richiamo il file di configurazione  
                
    require 'config.php';  
                
    // richiamo lo script responsabile della connessione a MySQL  
                
    require 'connect.php';
                
    //Preparazione Query e impaginazione
                
    $limit 10//Numero di News per pagina
                
    $query "SELECT * FROM news";
                
    $result mysql_query($query); //faccio la query 
                
    $total_row mysql_num_rows($result); //Numero totale di record
                
    $total_page ceil($total_row/$limit); //Numero totale di pagine da visualizzare
                
    $page=1;
                
    $offset$page 1;
                if (isset(
    $_GET['page'])) 
                    {
    $page $_GET['page'];
                     
    $offset $page 1;
                     
    $offset $offset 10;
                    }
                
    $query "SELECT *, DATE_FORMAT(Data, '%d-%m-%Y') AS new_data FROM news ORDER BY Data DESC limit $offset$limit";
                
    // invio la query  
                
    $result mysql_query($query);  
                
    //Controllo esito Query  
                
    if (!$result
                    {die(
    "Errore nella query $query: " mysql_error());  
                    }  
                while (
    $row mysql_fetch_assoc($result)) 
                    {echo 
    "
                        <div class='news_container'>
                        <div class='news_date'>
                            
    $row[new_data]
                        </div>
                        <div class='news_title'>
                            
    $row[Titolo]
                        </div>
                        

                        <div class='news_desc'>
                            

                            
    $row[Descrizione]
                            

                            

                        </div>
                        <div class='news_author'>
                            Autore:
    $row[Autore]
                        </div>
                        </div>
                     "
    ;
                    }
                
    // Impaginazione
                
    echo "
                    

                    <div class='impagina'>
                "
    ;    
                        if (
    $total_page !=1)
                            {if (
    $page 1// prima pagina?
                                
    {echo "[url='index.php']Prima[/url]"//link alla prima pagina
                                 
    $page--;
                                 echo 
    " | [url='index.php?page=$page']Precedente[/url]"//link alla pagina precedente
                                 
    }
                              if (isset(
    $_GET['page'])) 
                                  {
    $page $_GET['page'];
                                  }    
                             for (
    $i 1$i <= $total_page$i++) 
                                {echo 
    " | "
                                 if (
    $i == $page
                                    {echo 
    "
                                        <div class='selected'>
                                            
    $i
                                        </div>
                                     "
    ;
                                    }
                                 else
                                     {echo 
    "[url='index.php?page=$i']$i[/url]";
                                     }
                                 }
                             if (
    $page $total_page// ultima pagina?
                                
    {$page++;
                                 echo 
    " | [url='index.php?page=$page']Prossima[/url]";
                                  echo 
    " | [url='index.php?page=$total_page']Ultima[/url]"
                                }
                            }
                echo 
    "
                    </div>
                "
    ;
                
                     
                
    ?>      
            </div>
            <div id="footer">
                Writed & Designed By Balu Persli
                

                October 2007
            </div>
        </div>
    </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.