[PHP + SQL] Caricare molteplici record intabellati su una riga...
Premetto che mi sento male, quindi non mi ritengo responsabile per tutto ciò che leggerete in questo topic e, soprattutto, nel codice PHP (e ci vuole un bel coraggio ^^).
Sto creando una pagina che carichi dal database dei records, ovverosia i prodotto disponibili nel catalogo del sito. Per fare ciò mi sono servito di un ciclo while. Dopodiché il codice calcola il numero di record presenti nel database e si comporta di conseguenza suddividendo il catalogo in molteplici pagine mediante un semplice if.
Il problema (almeno per il momento http://heartless482.altervista.org/_...radar/look.gif) sta nel caricamento delle righe dal database.
Ogni pagina del catalogo deve dare in output 25 prodotti, dividendoli secondo una tabella 5x5. Ovviamente in ogni cella deve inserire un diverso prodotto preso dal database. Invece, per ogni riga, mi da, mano a mano, tutti i risultati che trova nel database. Tanto per fare un esempio, se in database ho i prodotti "Occhiali da sole" e "Schiuma da barba", vedo sulla prima riga "Occhiali da sole" ripetuto 5 volte e sulla successiva "Schiuma da barba" con lo stesso giochino.
Premetto anche che il sito è ancora in locale :wink:
Qui di seguito posto il codice:
Codice:
if (!isset($start) OR $start < 0) {
$start = 0;
$step = 25;
}
$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>";
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>";
}
}
Magari la soluzione è semplicissima, sotto il naso, però, in tutta sincerità, non riesco proprio a capire dove infilare certe porzioni di codice (quello delle pagine l'ho adattato da quanto trovato su FreePHP.it...).
Ringrazio anticipatamente :wink:
Ciao!