salve ragazzi mi trovo di fronte ad un problema ...
ho una pagina php che mi visualizza degli annunci estratti da un database...
fin qui tutto ok...
poichè gli annunci possono essere tanti ho deciso di usare la paginazione ma essendo un principiate ho seguito questa pillola e fin qui tutto ok......
http://forum.html.it/forum/showthrea...hreadid=439411
mi funziona tutto solo ho un piccolo problema mi stampa sempre le primi 5 annunci estratti dal db su ogni pagina..
esempio
nel mio db ho 13 annunci
pagina 1 mi stampa annunci 1 a 5
pagina 2 dobrebbe stamparmi da 6 a 11
invece mi stampa sempre 1 e 5 e cosi via
posto il codice
Codice PHP:
<?
include("config.inc.php");
/*
le modifiche da apportare sono pochissime:
- configurare a piacimento la variabile $recordxpag
- configurare una variaile $query con il codice SQl per l'interrogazione del database
- Inserire nel punto opportuno il messaggio di avviso in caso di nessun dato trovato
- Inserire nel punto opportuno il codice che stampa i vostri record dopo averli manipolati come meglio credete
*/
//per comodità configuriamo qui delle variabili che ci può essere utile modificare:
//la seguente variabile indica quanti record vogliamo mostrare per ogni pagina.. chiaro no?
$recordxpag = 5;
$query = "SELECT id,img,annuncio,autore FROM annunci";
//interrogazione del database:
//quale che sia la vostra query avremo una situazione del genere:
$res = mysql_query($query);
$righe = mysql_num_rows($res);
$numpag = ceil($righe/$recordxpag);
//con l'ultima istruzione otteniamo il numero di pagine necessarie a
//visualizzare un numero di record per pagina pari al valore della
//relativa variabile
//nel punto in cui preferite, ma dopo l'interrogazione del database
//[volendo anche dopo la visualizzazione dei dati che vedremo a breve]
//includiamo lo script visto in precedenza che ci crea, come detto,
//un piccolo menu' di link alle altre pagine generate dalla nostra
//interrogazione del database.
//ovviamente dovrete modificare eventualmente il path del file
include('paginazione.inc.php');
//per scrupolo ipotizziamo che la nostra interrogazione non abbia
//fornito risultati... chiaramente vogliamo segnalare la cosa
//all'utente.. basta gestire un semplice condizionale
if ($righe<1)
{
echo "non ci sono dati";
//gestite l'evento come meglio credete
}
else
{
//a questo punto cosa abbiamo a nstra disposizione?
//Abbiamo una variabile $pag [creata dallo script incluso] che ci informa
//di quale sia la pagina corrente.. cosa ce ne facciamo?
//semplice: ci basiamo su di essa e sul numero di record che
//vogliamo mostrare in ogni pagina, per crearci i due estremi
//dell'intervallo:
//moltiplicando il numero di record per pagina, per la pagina
//precedente, otteniamo il numero di record finora mostrati,
//quindi quello da cui partire nella pagina corrente ;)
$da = (($pag-1) * $recordxpag);
//non credo ci siano difficoltà: il limite destro del nostro
//intervallo, sarà il limite sinitro incrementato dell'intervallo stesso ;)
$a = $da + $recordxpag;
//quest'ultima condizione serve a dire allo script che se
//nell'ultima pagina ci fossero meno record di quelli da visualizzare
//si deve limitare all'ultimo record dispobnibile.
//tradotto in algoritmo: se il limite destro dell'intervallo, va
// oltre il numero dei record, poni il limite destro uguale al
// numero dei record
if ($a > $righe){$a=$righe;}
for ($i = $da; $i < $a; $i++)
{
//inserite qui il codice per la manipolazione e visualizzazione
//dei vostri dati
$row = mysql_fetch_array($res) ;
$campo = "$row[annuncio]";
$output = nl2br($campo);
echo "<div class=\"news\">";
echo "<div class=\"autore\">Questo annuncio è stato inserito da: $row[autore]
</div>";
echo "<div class=\"immagine\"><a href=\"img/$row[img]\" onmouseup=\"MM_openBrWindow('img/$row[img]','popup','top=100,left=100')\">
<img border=\"0\" widht=\"100\" height=\"100\" src=\"img/$row[img]\"></a></div>";
echo "<div class=\"annuncio\">$output</div>";
echo "<img src=img/barrag.gif>";
echo "</div>";
}
}
l'unica modifica che ho fatto di mio è questa
codice:
$row = mysql_fetch_array($res) ;
e sono sicuro che è questo l'errore... ma non so proprio cose cambiare...
mi date una spiegazione premetto che sono ai primi passi con php...
ragazzi vi prego rispondetemi perchè ho un bisogno urgente