PDA

View Full Version : incolonnare i prodotti con php


Fede83
18-10-2004, 11:48
Ciao a tutti, vi spiego il mio problema:

sto facendo un sito dove nella home page ce una vetrina con i prodotti, questi sono richiamati da un database tramite una while e fino qui tutto bene. Facendo questa while i prodotti si dispongono uno sotto l'altro, io invece, voglio che si mettono uno difianco all'altro facendo cosi due colonne, ma come faccio?


fatemi sapere.

Blackat
18-10-2004, 13:08
Uno a fianco all'altro facendo cosė due colonne cosa vuol dire?!??!?!

Comunque, se ho capito bene, ti consiglio di contare il numero
di righe della tua query ( esiste un modo per farlo ) e poi
creare una tabella con n colonne ( dove n = numero righe della query )
e 1 riga.

Spero di averti aiutato. Ciao

cionci
18-10-2004, 18:04
$n = 0;

Fino a che ci sono prodotti:
{
if(n == 0) Stampo il codice html della prima colonna;
else Stampo il codice html della seconda colonna;

$n = (n + 1) % 2;
}

Fede83
19-10-2004, 09:17
Ciao, mi hanno detto di usare qusto:

$i = 0;

WHILE ($row = mysql_fetch_assoc($query)) {

$i % 2 == 0 ? $riga = "<tr><td>$row[record]</td>" : $riga="<td>$row[record]</td></tr>";

echo $riga ;
$i++;
}


Ho provato a modificare il mio codice, ma mi da errore, come faccio a modificarlo in questo modo:

Codice che ho scritto:

<?php
error_reporting (0);
$conn = @mysql_connect("localhost","root","") or die("connessione fallita");
@mysql_select_db("computergratis") or die ("connessione fallita5");
$sql = "SELECT * FROM vetrina";
$risultato = @mysql_query($sql) or die ("query fallita");

print "<br><br><table align=center width=700 bordercolor=black> ";
$i = 0;
while ($linea = mysql_fetch_array($risultato)) {
print $i % 2 == 0 ? $riga = "<tr>
<td><a target=centro href=\"vetrina.php?id=$linea[idvetrina]\"><img border=0 width=70 height=70 src=".$linea['foto']."></td>" :$riga="<td>"$linea['foto']"</td></tr>";
print "<td><font size=2 face=courier><b>".$linea['nomeprodotto']."</b></font></td>" :$linea="<td>"$linea['nomeprodotto']"</td></tr>";
print "<td><font size=1 face=arial>".$linea['descrizione']."</font></td>";
print "<td><font size=2 face=arial back><b>".$linea['prezzo']."</b></font></td>";


echo $linea ;
$i++;


}
print "</tr></table>";



?>


Sono proprio impedita :muro:

Fede83
19-10-2004, 09:26
Ho provato a scrivere come mi hai detto tu:

<?php
error_reporting (0);
$conn = @mysql_connect("localhost","root","") or die("connessione fallita");
@mysql_select_db("computergratis") or die ("connessione fallita5");
$sql = "SELECT * FROM vetrina";
$risultato = @mysql_query($sql) or die ("query fallita");

print "<br><br><table align=center width=700 bordercolor=black> ";
$n = 0;
while ($linea = mysql_fetch_array($risultato)) {
if(n == 0) {
print "<tr>
<td><a target=centro href=\"vetrina.php?id=$linea[idvetrina]\"><img border=0 width=70 height=70 src=".$linea['foto']."></td>";
print "<td><font size=2 face=courier><b>".$linea['nomeprodotto']."</b></font></td>";
print "<td><font size=1 face=arial>".$linea['descrizione']."</font></td>";
print "<td><font size=2 face=arial back><b>".$linea['prezzo']."</b></font></td>";
else{
print "<td><a target=centro href=\"vetrina.php?id=$linea[idvetrina]\"><img border=0 width=70 height=70 src=".$linea['foto']."></td>";
print "<td><font size=2 face=courier><b>".$linea['nomeprodotto']."</b></font></td>";
print "<td><font size=1 face=arial>".$linea['descrizione']."</font></td>";
print "<td><font size=2 face=arial back><b>".$linea['prezzo']."</b></font></td>";

$n = (n + 1) % 2;
}
}


}
print "</tr></table>";



?>

mi da errore nella else........

cionci
19-10-2004, 14:52
Devi chiudere la parentesi graffa prima dell'else...
La soluzione che tia vevano dato č simile alla mia, ma prevedeva di stampare tutto su una sola riga...

Fede83
20-10-2004, 09:07
Ciao per la parentesi avevi ragione, il problema č che continuano a essere uno sotto l'altro, come mai, ho dimenticato qualcosa:


<?php
error_reporting (0);
$conn = @mysql_connect("localhost","root","") or die("connessione fallita");
@mysql_select_db("computergratis") or die ("connessione fallita5");
$sql = "SELECT * FROM vetrina";
$risultato = @mysql_query($sql) or die ("query fallita");

print "<br><br><table align=center width=700 bordercolor=black> ";
$n = 0;
while ($linea = mysql_fetch_array($risultato)) {
if(n == 0) {
print "<tr>";
print "<td><a target=centro href=\"vetrina.php?id=$linea[idvetrina]\"><img border=0 width=70 height=70 src=".$linea['foto']."></td>";
print "<td><font size=2 face=courier><b>".$linea['nomeprodotto']."</b></font></td>";
print "<td><font size=1 face=arial>".$linea['descrizione']."</font></td>";
print "<td><font size=2 face=arial back><b>".$linea['prezzo']."</b></font></td>";
}
else{
print "<td><a target=centro href=\"vetrina.php?id=$linea[idvetrina]\"><img border=0 width=70 height=70 src=".$linea['foto']."></td>";
print "<td><font size=2 face=courier><b>".$linea['nomeprodotto']."</b></font></td>";
print "<td><font size=1 face=arial>".$linea['descrizione']."</font></td>";
print "<td><font size=2 face=arial back><b>".$linea['prezzo']."</b></font></td>";
}
$n = (n + 1) % 2;




}
print "</tr></table>";



?>

Spero che hai voglia ancora di aiutarmi. Ciao e Grazie :muro:

cionci
20-10-2004, 10:55
Metti un </tr> alla fine del codice HTML nel ramo else...e toglilo da sotto...

Fede83
20-10-2004, 11:11
Ti ringrazio mille per l'aiuto, ho risolto il problema cosi:

<?php
error_reporting (0);
$conn = @mysql_connect("localhost","root","") or die("connessione fallita");
@mysql_select_db("computergratis") or die ("connessione fallita5");
$sql = "SELECT * FROM vetrina";
$risultato = @mysql_query($sql) or die ("query fallita");
print "<br><br><table align=center width=700 bordercolor=black><tr style=width:180px;height:20;background-color:#B7FFB7; padding-left:60px;padding-right:60px;>";
$n = 1;
while ($linea = mysql_fetch_array($risultato)) {
print "<td ><a target=centro href=\"vetrina.php?id=$linea[idvetrina]\"><img border=0 width=70 height=70 src=".$linea['foto']."></td>";
print "<td><font size=2 face=courier><b>".$linea['nomeprodotto']."</b></font></td>";
if ($n % 2 == 0)
echo "</tr><tr style=width:180px;height:20;background-color:#B7FFB7;padding-left:60px;padding-right:60px;>\n";
$n++;

}
print "</tr></table>";


?>


Grazie mille per l'aiuto. Ciao alla prossima :oink: