Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    67

    Sql query: impaginazione PHP e limiti.

    Salve a tutti ragazzi.
    Vi scrivo per chiedervi aiuto con una query sql.

    Il mio problema è il seguente; eseguo una query dove i risultati vengono impaginati nella seguente maniera:
    codice:
    $elenco = mysql_query("SELECT * from table where id_nickname = [VALORE] order by data desc limit ".$inizio.",".$max." ");
    Avrei necessità di applicare un altro limite e strutturare la query in modo diverso: ovvero, oltre quello dell'impaginazione, mi servirebbe che i record prelevati siano massimo 25 (in generale, non per pagina!).

    Come posso fare? Ho letto della funzione ROW_NUMBER() ma mi dice che la funzione non esiste (sì, sono ignorante in merito!)

    Grazie mille in anticipo a tutti

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non ho capito cosa vuoi fare.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Limit 0,25. Imposta $max a 25 e sei a posto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    67
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Non ho capito cosa vuoi fare.
    Allora.
    Ho una pagina che riassume, in breve, dei messaggi.

    Ogni utente può ricevere un numero di messaggi variabile: chi 25, chi 30, chi 10 – in base a dei valori che sono in variabile.
    Il problema è che, oltre a imporre questo limite, ho utilizzato una classe che mi fa impaginare i risultati della query che ho allegato sopra.

    Mi chiedevo se, oltre al LIMIT sql ci fosse un modo per dire, esempio: "prendi 25 record e di questi TOT prendimi dal 3 al 5".

    Per intenderci, una SQL nidificata che riproduca il SELECT TOP che, a me, non funziona.

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Fai un ciclo while sul recordset e invece di fare 25 loop fai il numero che ti interessa.

    Esempio :
    Codice PHP:
    $da3;
    $a 5;
    $index 1;

    while (
    bla bla bla) {
      if (
    $index >=$da && $index <= $a) {
        
    fai quello che vuoi
      
    }
      
    $index++;

    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    puoi fare una cosa del genere:
    Codice PHP:
    $subTable "SELECT * from table where id_nickname = [VALORE] order by data desc limit 25";
    $query "SELECT * from ($subTable) as subTable where id_nickname = [VALORE] order by data desc limit $inizio$max"
    Anche se probabilmente è meglio fare con php. Alla fine a te interessa non andare oltre una certa pagina/record, quindi ti basterebbe considerare al massimo 25 righe quando fai i conti sulle pagine e i link avanti/indietro
    Codice PHP:
    $rows mysql_num_rows(mysql_query("SELECT * from table where id_nickname = [VALORE]") ) ;
    $rows = ($rows 25) ? $rows 25

Tag per questa discussione

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.