• User Attivo

    Passare alla pagina successiva

    Passare alla pagina successiva Salve vado subito al punto...
    sto creando una pagina dei commenti utilizzando fopen.... file di testo
    come si fa quando la pagina è troppo piena di messaggi passare alla pagina successiva e mettere il link sotto 1 - 2

    Un esempio molto chiaro è un Forum ma anche un guestbook oppure nel mio caso una pagina dei commenti...

    Ho fatto delle ricerche su google e si parla di alcuni comandi che ti forniscono le informazioni inerente al numero di righe di un file di testo ma non ho idea di come strutturare il programma. :mmm:

    Per voi dovrebbe essere una cosa molto semplice. :vai:

    Intanto vi fornisco lo script: 😮

    [PHP]<?
    if(isset($_POST['messaggio'])){
    $messaggio=htmlspecialchars($_POST['messaggio']);

    $var=fopen("pagina1.php","a+");
    fwrite($var, "<tr><td><img src=' ' width=100 height=100></td><td valign=top><div style='width:200px; text-align:justify'> $messaggio </div></td></tr>");
    fclose($var);
    }

    ?>

    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
    <input type="text" name="messaggio" size="30">
    <input type="submit" value="scrivi commento">
    </form><br>

    <font color=red><h1>Commenti</h1></font><br>

    <font color=blue>
    <? include "pagina1.php"; ?>
    </font>
    </table><br>
    <a href="pagina1.php">vai alla pagina dei commenti</a>[/PHP]

    Grazie in anticipo. :vai:

    au revoir :ciauz:
    by max_400


  • User Attivo

    Ti consiglio vivamente di usare un database. Il lavoro, per il server, risulterebbe più snello ed il controllo, da parte tua, più sicuro.
    Se non avessi idea come fare ti darò un piccolo aiuto.


  • User Attivo

    Ho provato già questo script mi legge i primi 5 record
    ma non funziona il link sottostante

    [PHP]
    <?
    // Creo una variabile dove imposto il numero di record
    // da mostrare in ogni pagina
    $x_pag = 5;

    // Recupero il numero di pagina corrente.
    // Generalmente si utilizza una querystring
    $pag = htmlspecialchars($_GET['pag']);

    // Controllo se $pag è valorizzato...
    // ...in caso contrario gli assegno valore 1
    if (!$pag) $pag = 1;

    // Mi connetto al database
    $conn = mysql_connect("localhost","","");
    mysql_select_db("nome_database", $conn);

    // Uso mysql_num_rows per contare le righe presenti
    // all'interno della tabella agenda
    $all_rows = mysql_num_rows(mysql_query("SELECT id FROM nome_tabella"));

    // Tramite una semplice operazione matematica definisco
    // il numero totale di pagine
    $all_pages = ceil($all_rows / $x_pag);

    // Calcolo da quale record iniziare
    $first = ($pag - 1) * $x_pag;

    // Recupero i record per la pagina corrente...
    // utilizzando LIMIT per partire da $first e contare fino a $x_pag
    $rs = mysql_query("SELECT * FROM nome_tabella LIMIT $first, $x_pag");
    $nr = mysql_num_rows($rs);
    if ($nr != 0){
    for($x = 0; $x < $nr; $x++){
    $row = mysql_fetch_assoc($rs);
    echo "<table border=1 width=700><tr>";
    echo "<td width=650>" . $row['id'] . "</td>";
    echo "<td width=650>" . $row['user'] . "</td>";
    echo "<td width=650>" . $row['pass'] . "</td>";
    echo "<td width=650>" . $row['citta'] . "</td>";
    echo "<td width=650>" . $row['data'] . "</td>";
    echo "<td width=650>" . $row['ip'] . "</td>";
    echo "</tr></table>";
    }
    }else{
    echo "Nessun record trovato!";
    }

    // Se le pagine totali sono più di 1...
    // stampo i link per andare avanti e indietro tra le diverse pagine!
    if ($all_pages > 1){
    if ($pag > 1){
    echo "<a href="" . $_SERVER['PHP_SELF'] . "?pag=" . $pag - 1 . "">";
    echo "Pagina Indietro</a> ";
    }
    if ($all_pages > $pag){
    echo "<a href="" . $_SERVER['PHP_SELF'] . "?pag=" . $pag + 1 . "">";
    echo "Pagina Avanti</a>";
    }
    }

    // Chiudo la connessione ad DB
    mysql_close($conn);
    ?>
    [/PHP]

    mi compare a fine pagina...

    1">Pagina Avanti

    forse è un problema di virgolette ho provato a modificarle ma non và


  • User Attivo

    Vorresti quindi correggere questo script ed usare il database come suggerito?
    Se "si" stasera ti correggo lo script e vedrai che funzionerà bene.
    A presto.


  • User Attivo

    Sì.
    Ok grazie.
    Ci tengo a questo script, è molto breve e semplice da modificare
    Bisogna togliere queste virgolette e qualche slash... impostarlo meglio.

    Grazie infinite.


  • User Attivo

    OK.
    A stasera 25/06 cercherò di postarti lo script.
    Dopo di che fammi sapere se va. :quote:


  • User Attivo

    Ho già risolto il problema... bastava aggiungere le parentesi tonde in
    $pag + 1 in ----> ($pag + 1)
    $pag - 1 in ----> ($pag - 1)

    Ora ho un altro problema non mi funziona l'ordinamento per id
    ho aggiunto alla query (al SELECT)
    ORDER BY id ASC

    Non mi funziona perchè? :mmm:

    Grazie in anticipo a chi risponderà

    by max_400