Visualizzazione risultati 1 fino 7 di 7

Discussione: paging di un file

  1. #1
    Guest

    Angry paging di un file

    Codice PHP:
    <? $id = $_GET['id'];$i = $_GET['i'];
    echo
    "<html><body>";
    $file = "fileID.txt"; $total = filesize($file);
    $file2 = file_get_contents($file);
    $fp = fopen($file,"r") or die("errore nell esecuzione");
    $data = fread($fp, $total);
    fclose($fp);
    $num = $i * 500 ;
    $linea = $num+500;



    $perpage = $linea;
    $a = $i+1; $b = $i-1;
    $visualizza = substr($file2,$num,$linea);
    echo
    " $visualizza <hr color='red'/>";echo"<br/><br/>";
    echo
    "<big><a href='paging.php?i=$a&id=$id'> avanti </a> ";
    echo
    "<a href='paging.php?i=$i&id=$id'> (($i)) </a>";
    echo
    "<a href='paging.php?i=$b&id=$id'> indietro </a></big>";
    echo
    "<br/><a href='main.php?id=$id'>torna indietro</a></body></html>"; ?>
    ciao ragazzi sono una frana a manipolare i file come database :( qualcuno può aiutarmi a capire come impaginare un file.txt :( in questo caso quando clicco sul link avanti la visualizzazione di ciò che sta nel file.text viene raddoppiata :( cioè invece di visualizzare 1-da0 a 500, 2da 500 a 1000,3 da 1000 a 1500 caratteri mi da 1 da 0 a 500,2 da 0 a 1000 ,3 da 500 a 1500 e così via :( dove sbaglio??
    Ultima modifica di Sharefiles : 27-06-2011 alle ore 20.47.17

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Se la matematica non è un'opinione 500x0=0...
    Poi ti consiglio di sistemare un po' il codice: è un po' confusionario!
    Ciao!

  3. #3
    Guest

    Predefinito

    e infatti se la prima pagina è zero viene 500 * 0 = 0 ai quali aggiungo + 500 per vedere da 0 a 500 se la pagina è 1 viene 500*1 = 500 ai quali aggiungo +500 e in teoria dovrei vedere da 500 a 1000 giusto? in teoria però perchè nella pratica mi casca l asino :( dove sbaglio in questo codice :(????

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Scusami, ma mi son permesso di eliminare codice superfluo, altrimenti non ci capisco niente

    Codice PHP:
    <?php
    $id
    = $_GET['id'];
    $i = $_GET['i'];

    $file = "fileID.txt";
    $file2 = file_get_contents($file);
    $num = $i * 500;

    $visualizza = substr($file2,$num,$num+500);

    echo
    "<html><body>";
    echo
    " $visualizza <hr color='red' />";
    echo
    "<br /><br />";
    echo
    "<big><a href='paging.php?i=".($i+1)."&id=$id'> avanti </a>";
    echo
    "<a href='paging.php?i=$i&id=$id'> (($i)) </a>";
    echo
    "<a href='paging.php?i=".($i-1)."&id=$id'> indietro </a></big>";
    echo
    "<br /><a href='main.php?id=$id'>torna indietro</a></body></html>";
    ?>
    Se non vado errato, questo sopra dovrebbe essere equivalente al tuo iniziale.


    Dovresti controllare sempre se son settati $_GET['i'] e $_GET['id'] (ad esempio, tramite la isset(), ulteriormente, anche con la is_numeric()).

    Hai pensato di usare, come database di testo, sqlite? E' molto più veloce e facile da usare. "Lato PHP" ha lo stesso comportamento di un database sql, quindi si usa tramite query.

    Comunque, in generale, il terzo parametro della substr(), è la QUANTITA' di caratteri che dovrebbe stampare (ovvero la lunghezza del testo): non è come (ad esempio), slice(start, end) di javascript che restituisce la stringa dal carattere start al carattere end: il 3° parametro della substr() dovrebbe essere (nel tuo caso) sempre 500, perchè ogni volta vuoi stampare 500 caratteri partendo dal carattere $num-esimo!.

    Quindi, con 0 lui ti inizia da 0 scrivendo 500 caratteri. Con 1, lui inizia da 500 scrivendoti 1000 caratteri, quindi ti scrive dal carattere 500 al carattere 1500 (ovvero, 1000 caratteri partendo dal 500°), e non dal 500 al 1000 come pensavi!.. Non so se ho reso l'idea...

    Ciao!
    Ultima modifica di alemoppo : 28-06-2011 alle ore 00.22.52

  5. #5
    Guest

    Predefinito

    ciao alemoppo hai reso perfettamente l idea :) inizialmente questo script usava explode dopo i <br/> ma non mi funzionava tanto bene :( cmq ho fatto copia e incolla del tuo script e funziona uguale al mio cioè sto sempre sulla stessa pagina e ogni volta me la allunga di una linea :( pensavo che substr() fosse riferito ai caratteri !! sinceramente manco di esperienza ma l appendimento mi funziona bene :D non cè un altro modo per impaginare un file o al massimo fare in modo che il loop di inizio pagina coincida nel punto voluto?

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Nel mio script (o nel tuo), ha messo come 3° parametro 500?

    Sostituisci:
    Codice PHP:
    $visualizza = substr($file2,$num,$num+500);
    Con:
    Codice PHP:
    $visualizza = substr($file2,$num,500);
    In questo modo, non funziona? Che problemi da? (non ho capito)...

    Ciao!

  7. #7
    Guest

    Predefinito

    no così va bene :D grazie alemoppo :)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •