Visualizzazione dei risultati da 1 a 9 su 9

Discussione: count e numero pagine

  1. #1

    count e numero pagine

    avrei bisogno di un aiuto.. su un motore di ricerca interno al mio sito elenco tutti gli utenti iscritti.. pensavo di creare una serie di pagina, la prima mi visualizzarà i primi 25, la seconda dal 26 al 50, ecc ecc...

    come si può fare? io pensavo ad un count e ad un if mysql_num_rows, ma non so come costruirlo.. chi mi aiuta?

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Allora dovresti fare una cosa tipo questa a grandi linee.
    Scegli a priori quanti risultati visualizzare per pagina.
    Calcoli quanti sono i risultati.
    Stampi di base la prima pagina(nel tuo caso 25) e intanto fai un calcolo del tipo: tot_ris / ris_x_pagina e vedi quante pagine creare(per creare la slect per il passaggio di pagine oppure numeri singoli a vista da cliccrci sopra). Una volta selezionato il numero nuovo di pagina, fai questo calcolo:
    Se la pagina selezionata e' la numero 2, allora farai una query del tipo: seleziona record da stampare a partire dalla riga 26 fino 25 in poi. Devi ragionarci un'po' e vedrai che nn e' difficile.

  3. #3
    ..

  4. #4
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    ..

  5. #5

  6. #6
    (edit: ho postato che non c'erano risposte... vabbe' tutto fa brodo ^^)

    io faccio cosi' ma ovviamente ci sono un'infinità di metodi.

    1) faccio una query per capire il numero totale dei risultati

    Select * from utenti

    es. mysql_num_rows mi restituisce 100

    a quel punto decido quanti risultati devo far vedere per pagina (es 12), e divido per quello. considera che se fai la divisione intera e hai un resto dovrai fare una pagina in più che visualizzerà quel resto (sommi 1 se il modulo della divisione e' != 0). A questo punto ho il numero di pagine totali, e attraverso un parametro che indica il numero della pagina , mi costruisco la query mettendo il LIMIT.

    select * from utenti limit OFFSET, risultati_per_pagina;

    ovviamente devi sostituire a risultati_per_pagina il numero di risultati che vuoi visualizzare (es. 12). Al posto di offset invece devi scrivere il punto di partenza che ti calcoli con una formula tipo

    offset = (numero_pagina - 1) * risultati_per_pagina;

    fatto questo devi mettere la classica sequenza di link sotto la tabella per fare il salto di pagina

    1 2 3 4 5 6

    per fare questo devi fare un for con il numero di pagine tipo

    for ($i=0; $i <$num_pagine; $i ++)
    echo "" . $i ."";


  7. #7
    primo problema:

    $numutenti ="select * from membri";
    $risultatonum=mysql_query($numutenti,$connection) or die(mysql_error());
    $riganum=mysql_fetch_array($risultatonum);
    $numeroutenti=mysql_num_rows($riganum);
    $numeropagine=$numeroutenti / 20;
    echo $numeropagine;

    e mi echa 0 ... però ho già presente 101 record

  8. #8
    ok problema risolto... continuaiamo

  9. #9
    Originariamente inviato da Popper
    (edit: ho postato che non c'erano risposte... vabbe' tutto fa brodo ^^)

    io faccio cosi' ma ovviamente ci sono un'infinità di metodi.

    1) faccio una query per capire il numero totale dei risultati

    Select * from utenti

    es. mysql_num_rows mi restituisce 100

    a quel punto decido quanti risultati devo far vedere per pagina (es 12), e divido per quello. considera che se fai la divisione intera e hai un resto dovrai fare una pagina in più che visualizzerà quel resto (sommi 1 se il modulo della divisione e' != 0). A questo punto ho il numero di pagine totali, e attraverso un parametro che indica il numero della pagina , mi costruisco la query mettendo il LIMIT.

    select * from utenti limit OFFSET, risultati_per_pagina;

    ovviamente devi sostituire a risultati_per_pagina il numero di risultati che vuoi visualizzare (es. 12). Al posto di offset invece devi scrivere il punto di partenza che ti calcoli con una formula tipo

    offset = (numero_pagina - 1) * risultati_per_pagina;

    fatto questo devi mettere la classica sequenza di link sotto la tabella per fare il salto di pagina

    1 2 3 4 5 6

    per fare questo devi fare un for con il numero di pagine tipo

    for ($i=0; $i <$num_pagine; $i ++)
    echo "" . $i ."";
    scusa io non posso fare ceil($numeropagine) così anche se la divisione ha resto != 0 vedo gli utenti che starebbero nel resto?

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.