Originariamente inviato da remixe
Ciao Guido
ho applicato la tua funzione e funziona(scusa il gioco di parole)
bene.
mi mette però tutti i record restituiti in un unica riga, i quesiti che ti pongo sono due:

1-innanzitutto dove devo intervenire esattamente e come per
decidere quanti record devono apparire per ogni pagina;
con i parametri della funzione..
la funzione ha dei parametri cn default:
function paging($query,$x_pag=10,$num_links=5)

quindi se tu non passi il secondo parametro lo assume pari a 10 (e sono il numero dei record per pagina), e il terzo a 5 (sono il numero di pagine a cui comparirà il link nel minimenu')

ad esempio:
paging($sql,8); //l'ultimo resta a 5.. il secondo cambia a 8

paging($sql,8,7); //il secondo va a 8, l'ultim a 7

paging($sql,10,7); //l'ultimo va a 7, ma per cambiare l'ultimo dobbiamo mettere anche il secondo.. ecco perchè specifico il secondo anche se è identico al default.

Quetso naturalmnete vale per tutte le funzioni (che abbiano parametri con default)... qualsiasi buona guida di php dovrebbe parlarne abbastanza approfonditamente.

infine:

2-se io volessi far si ad esempio che apparissero per ogni pagina 8 foto
su due righe (4 sopra e 4 sotto) come dovrei intervenire sul questo codice della pagina?
esattamente come faresti con una funzione "normale".. cioè con la normale mysql_query...

una cosa del genere:
Codice PHP:
<?php
include("paging.func.php");
//connessione a mysql
mysql_connect('localhost','test','test');
//selezione del database
mysql_select_db('test');
 
//sottomissione della query (come usare mysql_query())
$res paging('SELECT * FROM news');
echo 
"<table border='0'>\n<tr>";

/*
verifica dei risultati: $res è un array.. l'elemento zero contiene
il risultato della query per la pagina corrente... mentre l'elemento 1
che useremo dove ci pare (nell'esempio lo usiamo alla fine) contiene
il codice del minimenu' da dare semplicemente in output
*/
if (!$res[0]) { echo "non ci sono dati";}
else
 {
        
/*sull'elemento zero si opera con un ciclo allo stesso modo
           in cui si farebbe con il risultato di mysql_query()
        */
   
$i=0;
   while(
$dati mysql_fetch_array($res[0]))
     {
      if(
$i++%4==0) echo '</tr><tr>';
      echo 
"<td><img src=\"$dati[foto]\">
      <a href=\"database2.php?id="
.$dati['id']."\">".$dati['titolo'];
     }
   }
         
/*stampa del minimenu' di link alle altre pagine
          (poteva essere stampato anche prima del ciclo)
        */
   
echo "</tr>
"
.$res[1];
   echo 
"</table>";
?>
in pratica apro una riga assieme all'apertura della tabella e ne chiudo una assimee alla chiusura della tabella... a quel punto se volessi fare una riga (dela tabella) ogni 4 record.. semplicemente ogni 4 record stampo chiusura della riga precedente e apertura della nuova

e questo lo faccio con un semplice contatore e un if sul modulo 4 del contatore.

Salvo sviste dovrebbe funionare, ad ogni modo il meccanismo è questo.... ma non dipende assolutamente dalla mia funzione