Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    recuperare numero record totali tabella nonostante LIMIT impostato

    ciao a tutti,

    ho da risolvere un bel problema: ho una query che mi visualizza un tot di record per pagina (esattamente 24), in quanto si tratta di una paginazione di foto.
    Ovviamene per ottenre ciò ho usato un LIMIT di questo tipo nella query:
    Codice PHP:
    $query "SELECT * FROM foto WHERE foto_presname <> '' ORDER BY foto_id DESC LIMIT ".$start.",".$numToShow.""
    ma ora mi sorge il seguente problema: poichè voglio modificare la mia paginazione mi serve assolutamente sapere come recuperare il valore di mysql_affected_rows o num_rows ecc. ("cioè la righe effettive che soddisfano il criterio"); non più solo in virtù del mio LIMIT di 24 record che comunque mi serve, ma anche sul totale dei record contenuti che soddisfino lo stesso criterio WHERE. Cioè, poichè non posso (non volendo appesantire) fare un'altra query per recuperare il numero totale di record che soddifino tale criterio della query dei 24 record per pagina: voglio recuperare il totale dei record della tabella che soddisfino l'WHERE della query impostata col LIMIT.

    ...E' COSA POSSIBILE...?

  2. #2
    di solito il numero dei record serve prima per poter calcolare la paginazione. Esegui una query con il COUNT(*) dei record interessati prima di estrarli.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Se non vuoi fare un altra query, potresti fare una cosa di questo tipo:
    Fai la query che prende il totale dei record e quando fai il while per creare l'array dei record, gli dai un indice alle variabili.
    $i=0;
    while(...){
    $i++;
    $nome[$i] = $result['nome'];
    }

    Cosi' facendo hai i record numerati e al momento della stampa, ti crei 2 variabili in base ala pagina scelta e fai un ciclo cosi':

    $recordIniziale = (..fai i calcoli per vedere da dove partire);
    $limite = numero record per pagina
    for($i=$recordIniziale;$i<=($recordIniziale+$limit e);$i++){
    //e qui ti stampi i record
    echo $nome['$i'];
    }
    PS di solito faccio come dice Piero per il totale cmq.

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.