Provo a correggerti un po' il codice:
Codice:
if (!isset($start) OR $start < 0) {
$start = 0;
$step = 25;
}
// queste le hai impostate come variabili più sopra, vero?
$connect = mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die("Impossibile stabilire una connessione al database SQL");
$database = mysql_select_db($mysql_data);
$query = mysql_query("SELECT * FROM prodotti ORDER BY id ASC");
echo "<table class=\"content\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\">\n";
while ($riga = mysql_fetch_array($query, MYSQL_ASSOC)) {
echo "<tr><td class=\"prodotto_menu\">";
if ($start > 0) {
$start_back = $start - $step;
$query_tot = mysql_query("SELECT count(*) AS tot FROM prodotti");
$row = mysql_fetch_array($query_tot);
$pages = intval(($row[tot] - 1) / $step) + 1;
for ($i = 0; $i < $pages AND $i < $step; $i++) {
$start_page = $i * $step;
echo "<a href=\"./prodotti.php?start=$start_page\">" . ($i + 1) . "</a> ";
}
}
echo "</td></tr>\n<tr>";
// questa proprio non l'ho capita: è qui che stampi 5 volte la stessa cosa!
for ($i = 0; $i < 5; $i++) {
echo "<td class=\"prodotto_noid\"><table class=\"prodotto_noid\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\">\n<tr><td class=\"prodotto_noid_img\"><a href=\"./view.php?id=$riga[id]\"><img src=\"./images/prodotti/$riga[id].jpg\"class=\"prodotto_img_reduc\" title=\"$riga[prodotto]\" alt=\"$riga[prodotto]\" /></a><br /><a href=\"./prodotti.php?id=$riga[id]\" class=\"noid\">$riga[prodotto]</a></td></tr>\n<tr><td class=\"prodotto_noid_prezzo\">$riga[prezzo] €</td></tr>\n<tr><td class=\"prodotto_noid_descbreve\">$riga[descbreve]</td></tr>\n</table></td>";
}
echo "</tr>\n<tr><td class=\"prodotto_menu\">";
if ($start > 0) {
$start_back = $start - $step;
$query_tot = mysql_query("SELECT count(*) AS tot FROM prodotti");
$row = mysql_fetch_array($query_tot);
$pages = intval(($row[tot] - 1) / $step) + 1;
for ($i = 0; $i < $pages AND $i < $step; $i++) {
$start_page = $i * $step;
echo "<a href=\"./prodotti.php?start=$start_page\">" . ($i + 1) . "</a>";
}
echo "</td></tr>\n</table>";
}
}
Ti propongo questa soluzione, decisamente più snella nel codice e che fa quello che chiedi (così vedo se ho anche capito quello che la tua pagina dovrebbe fare):
Codice PHP:
// questa è l'unica query che dovrai eseguire
$query = "SELECT * FROM prodotti ORDER BY id ASC";
// eseguila...
$result = mysql_query ($query, $connect);
// per prima cosa, prepara i link alle altre pagine del catalogo...
$nr = mysql_num_rows ($result);
$pages = intval (($nr - 1) / $step) + 1;
$linkCode = '<table class="content" align="center" cellspacing="0" cellpadding="0"><tr><td>Salta alla pagina:</td>';
for ($i = 0; $i < $pages; $i++)
$linkCode .= '<td><a href="prodotti.php?start=' . ($i * $step) . '">' . ($i + 1) . '</a></td>';
$linkCode .= '</tr></table>';
// ... e stampali la prima volta PRIMA dei prodotti
echo ($linkCode);
// questa qui serve per contare le nuove righe da generare... :-D
$count = 0;
// adesso preleva e stampa i dati dalla query, iniziando dal primo record
// e finendo quando non c'è più niente da stampare o hai esaurito i (25) prodotti
echo ('<table class="content" align="center" cellspacing="0" cellpadding="0">');
// piccola modifica al codice precedente (really sorry... ;-( )
for ($i = $start; $i < $start + $step && $i < $nr; $i++)
{
if ($count == 0)
echo ('<tr>');
echo ('<td class="prodotto_noid"><table class="prodotto_noid" align="center" cellspacing="0" cellpadding="0"><tr><td class="prodotto_noid_img"><a href="view.php?id=' . $result[$i]['id'] . '"><img src="images/prodotti/' . $result[$i]['id'] . '.jpg" class="prodotto_img_reduc" title="' . $result[$i]['prodotto'] . '" alt="' . $result[$i]['prodotto'] . '" /></a><br /><a href="prodotti.php?id=' . $result[$i]['id'] . '" class="noid">' . $result[$i]['prodotto']. '</a></td></tr><tr><td class="prodotto_noid_prezzo">' . $result[$i]['prezzo'] . ' €</td></tr><tr><td class="prodotto_noid_descbreve">' . $result[$i]['descbreve'] . '</td></tr></table></td>');
if (++$count == 5)
{
echo ('</tr>');
$count = 0;
}
}
if ($count != 0)
echo ('</tr>');
echo ('</table>');
// ti ricordi il codice dei link di pagina? ora puoi stamparlo di nuovo...
echo ($linkCode);
Spero di averti chiarito le idee... Stammi bene...