Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Paginazione di Giudoz

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    Paginazione di Giudoz

    Ciao a tutti

    Sto usando e ho usato gia altre volte il file paging.func.php creato da Giudoz, fino ad adesso non ho mai avuto problemi...
    ma non sò perchè non mi funziona in una sola situazione

    in pratica ho una pagina con un form per effettuare una ricerca, lancio la ricerca con metodo post nella pagina dei risultati utilizzo paging.func.php per impaginare, ma anche se la prima pagina si vede e mette correttamente i numeri per scorrere le altre pagine se clicco per vedere gli altri risultati mi compare una pagina vuota...

    vi è mai successo???

    Grazie

  2. #2
    ovviamente perkè la variabile mandata in post viene persa cliccando sul link a pagine successive cn variabili in get... quindi o modifichi la funzione in modo ke i tasti di scelta pagina siano input di un form ke riporti in un campo hidden la ricerca passata in post...
    oppure passi la ricerca in get assicurandoti di portare la variabile di ricerca in ogni pagina...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    scusa ma pur passando in get non funziona...



  4. #4
    Ovviamente perkè il tuo script legge la ricerca in post... quindi anke se appendi la variabile in get nn la legge perkè non c'è il codice php per leggerla.. prova a passarla in post o a modificare lo script...o usa una classe di paginazione diversa (io ne ho fatta una che sta su phpclasses.org)

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    scusa ma la tua qual'è? non la trovo

  6. #6

  7. #7
    Originariamente inviato da StefanoV
    In Effetti non l'ho uppata!

    Eccotela qui: http://www.mediafire.com/?1zqd3gnseyk
    ciao,

    mi permetto di darti un pò di consigli sul codice della classe della paginazione:
    - l'indentazione cosi è decisamente confusionaria, le funzioni sono all'interno della classe, cosi come le variabili, non possono stare sullo stesso livello di intendazione devi spostarle avanti ... senno non serve
    - splittare la query string per il carattere & è un grosso errore infatti php da la possibilità anche di splittarle tramite & perché dipende dalle situazioni il carattere & non è usato per la separazione ma & dato che & cosi buttato li è l'inizio di una entità
    - sempre invece di splittare, se non vuoi fare differenza tra get e post, anche se ti conviene scegliere un metodo ed usare sempre quello, puoi usare l'array _REQUEST, super globale come _GET e _POST
    - nel costruttore imposti una serie di variabili della classe che non sono settate e che, programmando con i notice abilitati, darebberò errori a gogo (è sempre importante programmare con i notice attivi perché sono errori spesso più dannosi dei warnings)
    - la funzione conta records cosi è un pò un suicidio perché il num_records fisicamente cicla i risultati e li conta uccidendo l'esecuzione, soprattutto se questi son tanti! Dovresti piuttosto lanciare la query utilizzando le funzioni unbuffered e prima di lanciarla utilizzare una reg_exp per modificare la select ponendo subito dopo lo statement (la parola chiave select) l'altra parola chiave SQL_CALC_FOUND_ROWS che indica a mysql di conteggiare i record durante l'estrazione senza tenere conto del limit) per poi utilizzare un semplice SELECT FOUND_ROWS() che è infinitamente più veloce di usare il num_rows o di lanciare 2 query con il where uguale dove nella prima metti il count tramite una reg exp e poi lanci la seconda cosi com'è
    - Inoltre passare la query di mysql al gestore della paginazione non ha molto senso infatti al gestore della paginazione devi passare 2 variabili ovvero la pagina corrente e le pagine totali ... ed altri eventuali valori specifici per il tipo di paginazione

    Per finire, nel file esempio.php, per alleggerire notevolmente il carico, ti conviene piuttosto non fare l'echo di tutto ma accodarlo ad una variabile da buttare fuori alla fine in modo da poter costruire il contenuto tramite un while sul fectch se ci sono dati e all'interno valorizzare una variabile verificando poi alla fine se questa variabile e stata settata perché se non lo è viene inserito un testo che avvisa che non ci sono presenti records altrimenti viene aggiunta prima e/o dopo la paginazione

  8. #8
    Veramente ce l'ho da 2 anni sta classe... e l'ho scritta quando ero alle prime armi col php... ma non mi ha mai tradito... poi l'ho postata per aiutare rossella nn per ricevere critiche o suggerimenti (anke se in buona fede infatti nn me la sto prendendo)

    Cmq, appena ho tempo mi riscrivo la classe in correggendo quello che mi hai fatto notare...cmq lo split per & lo faccio per riportare le query appese inserendola pagina anke se nn vien messa gia in get... altrimenti nn saprei come fare...


  9. #9
    la mia voleva essere una critica costruttiva, non vedo cosa c'entri la buona fede ^^

    per quanto riguarda il punto 2
    - splittare la query string per il carattere & è un grosso errore infatti php da la possibilità anche di splittarle tramite & perché dipende dalle situazioni il carattere & non è usato per la separazione ma & dato che & cosi buttato li è l'inizio di una entità
    ho notato solo ora che il VB si è mangiato un pezzetto di quello che avevo scritto


    - splittare la query string per il carattere & è un grosso errore infatti php da la possibilità anche di splittarle tramite & amp; perché dipende dalle situazioni il carattere & non è usato per la separazione ma & amp; dato che & cosi buttato li è l'inizio di una entità

  10. #10
    Data una query qualsiasi come per esempio

    Codice PHP:

    // result set:
    $query "SELECT
         SQL_CALC_FOUND_ROWS page_id, page_title
         FROM pages
         LIMIT 0 , 10"

    di cui si può leggere il numero totale dei risultati con:

    Codice PHP:
    // num rows:
    $query "SELECT FOUND_ROWS() AS total_results"
    come si può ottenere il result set insieme a FOUND_ROWS() in un'unica query?
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

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.