Pagina 1 di 2

Pagine

Inviato: 17/05/2010, 21:00
da BMercer
Avrei bisogno di impostare in un mio script (staccato da phpbb) il massimo numero di topic a 10.
Per questo dopo aver estratto i dati con una select, li passo ad un ciclo while così:

Codice: Seleziona tutto

while ($row = $db->fetch($result))
{
// codice per mostrare i risultati
}
 
Il problema è che non saprei come mettere il limite.
Ho provato così:

Codice: Seleziona tutto

$i = 1;
while ($row = $db->fetch($result) && $1 <= 10)
{
// codice per mostrare i risultati
++$i;
}
 
Ma mi dà errore di connessione, mentre con il primo codice funziona, però senza il limite.

Re: Pagine

Inviato: 17/05/2010, 22:31
da Carlo
Scusa, ma tu vorresti estrarre solo 10 discussioni? Ho capito bene?

Re: Pagine

Inviato: 18/05/2010, 11:15
da Micogian
$sql = "SELECT * FROM tabella WHERE condizioni ORDER by xxxx LIMIT 0,10"

estrai i primi 10 records della tabella

Re: Pagine

Inviato: 18/05/2010, 18:21
da BMercer
Così facendo, bingo, non posso con una sola query fare un controllo di quante discussioni ci sono in totale e dire:

Codice: Seleziona tutto

if ($numrows > 10) {
// bottone per le pagine sucessive
}
 
Perchè esse saranno sempre e solo 10 se le limito a tale numero.

Re: Pagine

Inviato: 18/05/2010, 18:37
da Carlo
Puoi utilizzare la funzione array_slice del PHP.

In questo modo:

Codice: Seleziona tutto

$nuovo_array = array_slice($array_topics, 0, 10); 

Re: Pagine

Inviato: 18/05/2010, 19:05
da BMercer

Codice: Seleziona tutto

$posts = array_slice($db->fetch($result), 0, 10);
while ($row = $posts) {
// codice html
}
Produce il primo post per infinite volte (o almeno moltissime, perchè ad un certo punto ho interrotto la pagina).

Re: Pagine

Inviato: 18/05/2010, 19:12
da Carlo
Mhm... dovresti prima aggiungere tutti records ad una array con il ciclo while(), poi con count() conti il numero di topics totali, e con array_slice() estrai solo 10 topics.

Re: Pagine

Inviato: 18/05/2010, 19:14
da BMercer
mysql_fetch_assoc inserisce di base i records in un array.
E a cosa mi servirebbe contare i topic totali?

Re: Pagine

Inviato: 18/05/2010, 19:31
da Carlo
BMercer ha scritto:E a cosa mi servirebbe contare i topic totali?
L'hai chiesto tu in un messaggio precedente o sbaglio?
BMercer ha scritto:[...] non posso con una sola query fare un controllo di quante discussioni ci sono in totale e dire: [...]

Re: Pagine

Inviato: 18/05/2010, 19:41
da BMercer
Ma il senso era che non si può fare un conteggio dei records di una query con limit 0,10 , perchè si sà già che saranno 10. E poi per fare il conteggio basta un mysql_num_rows.
Non è quello il problema. Il problema è che effettuando una query del tipo "SELECT * FROM xxx" vorrei mostrare solo i primi 10 risultati. Il problema è che non riesco a capire come.