Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392

    [Ciclo for] Problema...

    Ciao raga,
    sto affrontando la paginazione dei dati, e per farlo sto utilizzando i cicli while e for insieme. Fin qui tutto va splendidamente. Il problema mi si presenta quando devo fare i link alle pagine contenenti i messaggi, e penso che ciò si possa fare solo con un ciclo for. Allora, io ho provato in tutti i modi ma non riesco a farne uno adatto alle mie esigenze...
    Facciamo il caso che in tutto i messaggi nel gbook sono 6, e la mia paginazione prevede che ogni pagina debba contenere 5 messaggi. La prima pagina me la mostra giusta, cioè sono presenti i primi 5 messaggi, ma non so come creare il link per l'altra pagina... Ho provato a fare una cosa così ma non mi funge...
    Codice PHP:
       for($pag=0;$pag<($tot*$max);$pag++)
       {
           if((
    $tot/$max)>(bcdiv($tot,$max0)))
           {
               
    $pag++;
           }
           print 
    "<a href=\"./index.php?pag=$pag\">$pag</a>";
       } 
    Mi potete aiutare???
    Tnx...


  2. #2
    io per la paginazione uso semplicemente un valore di start e un numero di messaggi.

    lo start arriva via get e il num_msg è una costante.

    a questo punto usando una query con limit ottieni i msg che ti interessano.

    quando crei i link:

    <a href="pagina.php?start=<?=$start?">

    dove $start = $pag*NUM_MSG;

    spero di esserti stato d'aiuto.




  3. #3
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Originariamente inviato da Tymba
    io per la paginazione uso semplicemente un valore di start e un numero di messaggi.

    lo start arriva via get e il num_msg è una costante.

    a questo punto usando una query con limit ottieni i msg che ti interessano.

    quando crei i link:

    <a href="pagina.php?start=<?=$start?">

    dove $start = $pag*NUM_MSG;

    spero di esserti stato d'aiuto.



    Quello che vuoi fare tu è la stessa cosa che vorrei fare io, però forse sbaglio un'altra cosa...
    Codice PHP:
    if(isset($_GET['msg']))
    {
        
    $pag $_GET['msg'];
    }
    else
    {
        
    $pag 0;
    }
    $max 5;
    $msg = ($pag*$max);
    $sql "SELECT * FROM guestbook LIMIT($msg,$max)";
    $risultato mysql_query($sql); 
    Sbaglio la limit?

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da PaTeR
    Sbaglio la limit?

    devi togliere le parentesi e mettere un campo per l'ordinamento (crescente o decrescente):

    $sql = "SELECT * FROM guestbook ORDER BY campo DESC LIMIT $msg,$max";
    think simple think ringo

  5. #5
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Originariamente inviato da marketto
    devi togliere le parentesi e mettere un campo per l'ordinamento (crescente o decrescente):

    $sql = "SELECT * FROM guestbook ORDER BY campo DESC LIMIT $msg,$max";
    Quello l'ho corretto dopo, scusa, era solo una prova che poi ho copiato qui per sbaglio...
    Ho provato con questo while ma mi dà errore...
    Codice PHP:
    $count mysql_query("SELECT COUNT(id) FROM guestbook");
    $res_count mysql_fetch_row($count);
    $tot $res_count[0];

    $per_page 10;

    $tot_pages ceil($tot $per_page);

    $current_page = (!$_GET['pag']) ? : (int)$_GET['pag'];

    $primo = ($current_page 1) * $per_page;
    $query_limit mysql_query("SELECT * FROM guestbook LIMIT $primo$per_page");
    while(
    $_MESSAGE mysql_fetch_array($query_limit)) {
    {
    if(
    $_MESSAGE)
    {
        
    $_MESSAGE['messaggio'] = control($_MESSAGE['messaggio']);
        print 
    "
                 <tr>
                <td class=\"bottd\" width=\"150\">
                [b]Autore:[/b]"
    .$_MESSAGE['autore']."

                [b]Data:[/b]
    "
    .$_MESSAGE['data']."

                [b]Ora:[/b]"
    .$_MESSAGE['ora']."

                </td>
                <td class=\"bottd\" width=\"450\">
                <img src=\"./write.gif\" border=\"0\"> [b]Messaggio:[/b]

                "
    .$_MESSAGE['messaggio']."
                <hr width=\"400\">
                <div align=\"right\">
                [b]ID:[/b] "
    .$_MESSAGE['id']."
                </div>
                </td>
                </tr>
       "
    ;
    }
    else
    {
       print 
    "<div align=center>Si sono verificati dei problemi! Probabilmente sono in corso lavori tecnici...
    [url='./index.php']Clicca qui per ritornare al Guestbook[/url]</div>"
    ;
    }

    Cosa sbaglio???

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da PaTeR
    Quello l'ho corretto dopo, scusa, era solo una prova che poi ho copiato qui per sbaglio...
    Ho provato con questo while ma mi dà errore...

    Cosa sbaglio???

    finchè nn posti l'errore ed il numero di riga che ti genera l'errore nn possiamo aiutarti
    think simple think ringo

  7. #7
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Originariamente inviato da marketto
    finchè nn posti l'errore ed il numero di riga che ti genera l'errore nn possiamo aiutarti
    Allora... Lo script completo è questo:
    Codice PHP:
    <?
    include('./Functions.php');
    connect();
    $count mysql_query("SELECT COUNT(id) FROM guestbook");
    $res_count mysql_fetch_row($count);
    $tot $res_count[0];
        print 
    "
    <html>
    <head>
    <title>PaTeR GuestBook</title>
    <link rel=\"stylesheet\" type=\"text/css\" href=\"./Style.css\">
    </head>
    <body>
    <div align=\"center\">



    <table cellspacing=\"1\" cellpadding=\"1\">
    <tr>
    <td class=\"toptd\" width=\"600\" colspan=\"2\">

    <div align=\"center\">
    PaTeR Guestbook
    </div>
    </td>
    </tr>
    <tr>
    <td class=\"subtd\" width=\"150\">
    Messaggi: [b]"
    .$tot."[/b]
    </td>
    <td class=\"subtd\" width=\"450\">
    <div align=\"center\">
    <img src=\"./index.gif\" border=\"0\"> <a href=\"index.php\">Home</a> - <img src=\"./write.gif\" border=\"0\"> <a href=\"./write.php\">Write</a>

    </div>
    </td>
    </tr>"
    ;

    $per_page 10;

    $tot_pages ceil($tot $per_page);

    $primo = ($current_page 1) * $per_page;
    $query_limit mysql_query("SELECT * FROM guestbook LIMIT $primo$per_page");
    while(
    $_MESSAGE mysql_fetch_array($query_limit))
    {
        
    $_MESSAGE['messaggio'] = control($_MESSAGE['messaggio']);
        print 
    "
                 <tr>
                <td class=\"bottd\" width=\"150\">
                [b]Autore:[/b]"
    .$_MESSAGE['autore']."

                [b]Data:[/b]
    "
    .$_MESSAGE['data']."

                [b]Ora:[/b]"
    .$_MESSAGE['ora']."

                </td>
                <td class=\"bottd\" width=\"450\">
                <img src=\"./write.gif\" border=\"0\"> [b]Messaggio:[/b]

                "
    .$_MESSAGE['messaggio']."
                <hr width=\"400\">
                <div align=\"right\">
                [b]ID:[/b] "
    .$_MESSAGE['id']."
                </div>
                </td>
                </tr>
       "
    ;
    }
    else 
    //<-- Errore
    {
       print 
    "<div align=center>Si sono verificati dei problemi! Probabilmente sono in corso lavori tecnici...
    [url='./index.php']Clicca qui per ritornare al Guestbook[/url]</div>"
    ;
    }
    print
    "
       <tr>
       <td class='subtd' width='150'>
       [b]Naviga nel Guestbook![/b]
       </td>
       <td class='subtd' width='450'>
       <div align='center'>
       </div>
       </td>
       </tr>
       </table>
       </div>
       </body>
       </html>
    "
    ;
    ?>
    L'errore per ora mi dà il T_ELSE... quello che dà errore è indicato

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    non puoi mettere l'else assieme al while


    se il while non viene eseguito causa errori nella query, usa mysql_error.
    think simple think ringo

  9. #9
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Originariamente inviato da marketto
    non puoi mettere l'else assieme al while


    se il while non viene eseguito causa errori nella query, usa mysql_error.
    Ok, scusa questi errori stupidi ma ci sbatto la testa da troppo tempo...
    Ora c'è un'altro errore:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in f:\webserver\Servers\PaTeR\guestbook\index.php on line 52

  10. #10
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da PaTeR

    Ora c'è un'altro errore:
    la query non funziona, quindi ci sn dei problemi nel LIMIT. stampa la query e controlla che $primo e $per_page siano corretti.
    think simple think ringo

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.