Visualizzazione dei risultati da 1 a 9 su 9

Discussione: paginazione testo

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056

    paginazione testo

    Eccomi con un nuovo problema...
    Ho sempre gestito la paginazione di immagini, definendo quindi una griglia di un tot di immagini per pagina e facendo le varie query...

    Ora invece mi trovo con una pagina che conterrà del testo, ovviamente dinamico, ovviamente inserito dall'utente.

    Devo poterlo controllare per gestire la paginazione.

    Quindi mi chiedo:

    - limito in mysql in numero di caratteri per campo

    E ok, così so che al max ad es posso visualizzare 4 record...se però le righe sono meno non voglio che lasci spazio...

    Quindi in php per sapere quanti record visualizzare devo far contare il numero di parole e in base a quello gestire la paginazione???

    Non so, sono supposizioni....

    Voi come fate?
    Avete qualche consiglio da darmi???

    grazie

  2. #2
    o il numero di parole o il numero di lettere

    //numero di parole

    $parole = explode(" ", $testo);
    $n_parole = count($parole);

    //numero di lettere

    $n_lettere = strlen($testo);

    Secondo me potresti fare in questo modo, ti dico un po' la logica che ho in mente...così, molto velocemente

    Quando un utente invia un messaggio fai un controllo contando il numero di lettere o di parole..ogni tot lettere o parole puoi inserire con un ciclo un tag tipo che fungerà da riferimento per impaginare il testo al momento della lettura.

    Quindi quando stampi a schermo il messaggio con un ciclo dividerai il testo in pagine in base al numero di tag presenti.

    spero di averti dato uno spunto utile :-)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056
    ti ringrazio per la risposta!
    Sicuramente il testo sarà breve, sono semplicemente delle news.
    Quindi non ci sarà il problema di suddividere IL record per pagine ma di suddividere I record (quanti record) per pagina....

    QUindi, se io conto le parole, imposto la variabile tot_record_pagina volta per volta...

    però dovrei fare mille query!

    Oppure...mmmhhh....bah...nn riesco a uscirne....

  4. #4
    ops :-) avevo capito un'altra cosa

    bhè credo che l'unica soluzione sia contare i record e poi con un controllo if in base al numero di record che hai (inferiore o superiore ad un numero di riferimento) impagini correttamente i record

    per contare i record puoi utilizzare un cliclo while dopo la query SELECT impostando una variabile = 0 che si incrementa di uno ogni volta che il ciclo cicla :-)

    $ciclo = 0;

    while($array = mysql_fetch_array($risultato)) {

    $ciclo++;

    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056
    eheh ti ringrazio per la disponibilità...

    come ti dicevo contare il numero di record e suddividere lo faccio già...

    ora il problema è che i record per pagina saranno variabili in base alla quantità di testo che contengono!!!!

  6. #6

    ^_^

    conti le parole, se ad esempio sono più di 1000 fai una select con un LIMIT 2

    se le parole solo meno di 1000 fai un LIMIT 5

    con un ciclo dovresti riuscire a controllare il numero di parole in ogni messaggio e successivamente con un if a controllare l'output..2 query ti bastano :-)

    ho fatto una cosa simile tempo fa, solo che sto usando dei file di testo

    speriamo sia la volta bona!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056
    aiuto...difficilotto per me...

    Dunque, vediamo se così può andare...

    $tot_righe_pag = 30;
    mysql_query (SELECT * FROM blablacla);
    echo mysql_error();
    while ($result = mysql_fetch_array($query)){

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056
    //if (tot_corrente > 1){
    //$n_parole = $parole = explode(" ", $_result['testo']);
    //$n_parole = count($parole);
    //$tot_corrente = $tot_corrente - $n_parole;
    //$i++
    //}
    //else{
    //stop exit
    //}
    [/CODE]

    Quindi $i mi restituisce il LIMIT, poi in base a quello parto per la query della pagina successiva e rifaccio tutti sti conti...

    Boh sicuramente ora l'ho sparato giù solo per farmi un'idea....che ne pensi?
    Ovviamente devo affinarlo....

  9. #9
    codice:
    $ref = 500; //max parole ammesse
     
    $query = SELECT * FROM tabella ORDER BY id DESC LIMIT 5;
    $ris = mysql_query($query);
    
    $query2 = SELECT * FROM tabella ORDER BY id DESC LIMIT 2;
    $ris2 = mysql_query($query2);
    $array2 = mysql_fetch_array($ris2);
    
    while($array = mysql_fetch_array($ris)) {
    
    $parole = explode(" ", $array[testo]);
    
    $n = count($parole);
    
    
            if($n <= 500) {
    
    echo"$array[testo]
    ";
    
    
    } else {
    
    echo"$array2[testo]
    ";
    
    }
    
    }
    l'ho buttato giù molto velocemente, non so se funziona però a grandi linee è così :-)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.