+ Rispondi alla Discussione
Risultati da 1 a 5 di 5

Paginazione continuativa ordinata per ID, per Data, per Altro

Ultimo Messaggio di fabioski il:
  1. #1
    Banned L'avatar di fabioski
    Data Registrazione
    May 2005
    Messaggi
    862

    Paginazione continuativa ordinata per ID, per Data, per Altro

    Usando il classico esempio di paginazione in php riportato su html.it sono riuscito a paginare circa 10500 record ordinandoli per il loro ID.

    Ora vorrei passare oltre.

    Supponiamo che per i record io abbia:
    ID
    DATA
    TITOLO

    Ecco cosa vorrei fare:
    con un'unica pagina vorrei che quando l'utente vi accede essa di default mi ordini i record per ID partendo dall'ultimo ed andando verso il primo.

    In tale pagina vorrei fare una specie di form oppure dei links che mi dicano:
    ordina i record per data (e magari di fianco un select Asc oppure desc).

    Ecco che la stessa pagina mi ordina i record nel modod scelto.

    PEROOOOOOOOO... devo fare in modo che cliccando sui link alle pagine 2, 3, 48, 49, ultima la pagina mi visualizzasse i record secondo il criterio stabilito.

    Mi spiego con un esempio.
    Entro e le vedo ordinate per ID. Vado a pagina 48 e sono ordinate per ID.

    In fondo pagina scelgo: ORDINA PER DATA, ASCENTENDENTE e clicco ok. Dai ora i record sono ordinati per data. Se ora clicco al link di pagina 48 mi ritrovo in essa i record ordinati per data.

    E così via.

    Avete idea di come potrei agire?

  2. #2
    User Attivo L'avatar di massy
    Data Registrazione
    Mar 2006
    Località
    Pico
    Messaggi
    1,014
    passi tramite $_GET nell'URL i valori voluti (es: www.pippo.it/pag.php?limite=10&ord='data"&asc='y'

    gestisci i valori [mi raccomando, sii paranoico nel farlo che potrebbero inc****i facilmente] e li passi alla query:

    $q="select * from 'tabella' WHERE clausola LIMIT ".$limite." ORDER By ".$ordine." ".$asc.";

    spero di essermi spiegato in qualche modo

  3. #3
    Banned L'avatar di fabioski
    Data Registrazione
    May 2005
    Messaggi
    862
    Ahhhh ecco una buona idea.
    Allora io controllo che se, per esempio
    tipopaginazione =='' allora come parametro per l'ORDER uso ID
    mentre se è diverso da vuoto uso data (tipopaginazione=data) oppure l'altro.

    Ho 2 problemi: dalla pagina 10 alla pagina 11 deve restare lo stesso parametro per la scelta della paginazione quindi OGNI link alla pagina successiva ha nell'url tipopaginazione=.... e non potendo usare mod_rewrite ciò mi allunga troppo gli url

    Cosa intendi con
    gestisci i valori [mi raccomando, sii paranoico nel farlo che potrebbero inc****i facilmente] e li passi alla query:
    Ti stai riferendo al fatto che potrebbero risalire alle password del database? Cioè fare una mi sembra si chiama sql injection?

    Grazie, MAssy, illuminante come sempre

  4. #4
    User Attivo L'avatar di massy
    Data Registrazione
    Mar 2006
    Località
    Pico
    Messaggi
    1,014
    per i parametri, li gestisci con i get, no?

    avrai un'url del tipo:
    www.pippo.it/pag.php?limite=10&ord='data'&asc='y' ?

    $lim=(isset($_GET['limite'] && is_numeric($_GET['limite']) && $_GET['limite']>=0)?$_GET['lim']:0;

    in tal modo passi il vecchio valore se esiste, se non esiste parti da 0

    stessa cosa ad esempio per $asc =>
    $asc=(isset($_GET['asc']) && $_GET['asc']=='y')?"y":"n";

    e così via.

    Cioè fare una mi sembra si chiama sql injection?
    Sì.

  5. #5
    Banned L'avatar di fabioski
    Data Registrazione
    May 2005
    Messaggi
    862
    Sai cosa... per evitare il pericolo di sql inj una volta che il sistema va bene per l'ordinazione tramite ID creo delle pagine con ordinazione tramite data e tramite altri parametri.

    Per ogni parametro mi si creeranno 2 nuove pagine... se il sistema non necessita di variazioni mi sembra un buon metodo per evitare da zero la sql inj... l'unico parametro passat osarà il numero della pagina.

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.