Leggi il Topic


Indice del forumMotobarForum Internet & Hi-Tech

   

Pagina 1 di 1
 
Php & Mysql [mostrare dati su più campi]
1238232
1238232 Inviato: 26 Feb 2007 8:52
Oggetto: Php & Mysql [mostrare dati su più campi]
 

Ciao

ho appena finito di costruire una pagina PHP che si connette ad un DB mysql, tutto funziona sia l'ordinamento sia la visualizzazione dei dati all'interno del DB. Ora mi sorge una questione, come posso mostrare i dati del DB su + campi??
Per esempio in una tabella dove il campo è ripetuto sia dx che a sx ecco l'esempio vi posto intanto due righe di codice:

<tr>
<td height="100%"><?php echo "$Modello"; ?>
<td height="100%"><?php echo "$Codice"; ?>
</tr>
<tr>
<td height="100%"><?php echo "$Modello"; ?>
<td height="100%"><?php echo "$Codice"; ?>
</tr>

Scrivendo questo praticamente mi mostra nella prima tabella Modello1, codice1 e lo replica nella seconda invece che magari scrivere Modello2 codice2.
Dove sbaglio???
 
1238448
1238448 Inviato: 26 Feb 2007 10:25
Oggetto: Re: Php & Mysql
 

Emy26 ha scritto:
Ciao

ho appena finito di costruire una pagina PHP che si connette ad un DB mysql, tutto funziona sia l'ordinamento sia la visualizzazione dei dati all'interno del DB. Ora mi sorge una questione, come posso mostrare i dati del DB su + campi??
Per esempio in una tabella dove il campo è ripetuto sia dx che a sx ecco l'esempio vi posto intanto due righe di codice:

<tr>
<td height="100%"><?php echo "$Modello"; ?>
<td height="100%"><?php echo "$Codice"; ?>
</tr>
<tr>
<td height="100%"><?php echo "$Modello"; ?>
<td height="100%"><?php echo "$Codice"; ?>
</tr>

Scrivendo questo praticamente mi mostra nella prima tabella Modello1, codice1 e lo replica nella seconda invece che magari scrivere Modello2 codice2.
Dove sbaglio???

Premetto di non esere un programmatore php, ma... se tu hai estratto dei record da un db... dopo aver letto il primo record... non devi spostare il puntatore sul successivo?
 
1238535
1238535 Inviato: 26 Feb 2007 10:50
 

infatti li vedo tutti i record il problema che me li fa vedere visualizzati su una colonna unica e poi li replica sull'altra.

A me interesava che i records venissero mostrati a zig zag sulle colonne
 
1238839
1238839 Inviato: 26 Feb 2007 12:15
 

Io ti consiglierei di fare un loop in modo da costruire la tabella HTML in modo dinamico. Significa che devi "mischiare" codice HTML nella pagina PHP.

In pratica fai così:

  • Scrivi l'intestazione della tabella
  • Creati un loop usando un "While" e scorri i recod del recordset di MySQL usando l'istruzione PHP "mysql_fetch_array"
  • Scrivi in HTML le istruzioni per chiudere la tabella


Io l'ho fatto e funziona. Se ti può essere d'aiuto pubblico del codice sorgente di esempio

A te riporta sempre lo stesso valore sui campi perchè non vai avanti nel recordset. Se poi non vuoi creare la tabella dinamnica devi scrivere il codice PHP che ti manda avanti il puntatore nel recordset tra le righe della tabella
 
1239181
1239181 Inviato: 26 Feb 2007 13:43
 

<?
$username="username";
$password="password";
$database="DBname";
$host="host";

mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM Caschi";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();
$i=0;
while ($i < $num) {

$Modello=mysql_result($result,$i,"Modello");
$Codice=mysql_result($result,$i,"Codice");
$Descrizione=mysql_result($result,$i,"Descrizione");
$prezzo=mysql_result($result,$i,"prezzo");

?>
<html>

<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body {
background-color: #ff6600;
}
.Stile1 {font-size: 9px}
-->
</style></head>

<table width="100%" border="0">
<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Modello:</em></strong></font></span><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200"><?php echo "$Modello"; ?></font></strong></font></td>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Modello:</em></strong></font></span><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200"><?php echo "$Modello"; ?></font></strong></font></td>
</tr>
<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Codice:</em></strong></font></span><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200"><?php echo "$Codice"; ?></font></strong></font></td>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Codice:</em></strong></font></span><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200"><?php echo "$Codice"; ?></font></strong></font></td>
</tr>
<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Descrizione:</em></strong></font></span><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200"><?php echo "$Descrizione"; ?></font></strong></font></td>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Descrizione:</em></strong></font></span><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200"><?php echo "$Descrizione"; ?></font></strong></font></td>
</tr>
<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Prezzo al Pubblico :</em></strong></font></span><font face="Verdana">&<strong><FONT SIZE="3" color="#FFFFFF"><?php echo "$prezzo"; ?></font></strong></font></td>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Prezzo al Pubblico :</em></strong></font></span><font face="Verdana">&<strong><FONT SIZE="3" color="#FFFFFF"><?php echo "$prezzo"; ?></font></strong></font></td>
</tr>
<tr>
<td height="100%"><span class="Stile1"><font face="Arial, Helvetica, sans-serif">________________________________________________</font></span></td>
<td height="100%"><span class="Stile1"><font face="Arial, Helvetica, sans-serif">________________________________________________</font></span></td>
</tr>
</table>
<?php
++$i;
}
?>
</html>

ecco la pagina incriminata
 
1239269
1239269 Inviato: 26 Feb 2007 14:03
 

Io modificherei così (e ti risparmi anche tanto codice)

Codice:

$username="username";
$password="password";
$database="DBname";
$host="host";

mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM Caschi";
$result=mysql_query($query);

print "<table width="100%" border="0">";

while ($riga = mysql_fetch_array($result, MYSQL_ASSOC)) {

printf ("<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Modello:</em></strong></font></span></td>
<td><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200">".$riga["Modello"]."</font></strong></font></td>
</tr>
<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Codice:</em></strong></font></span></td>
<td><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200">".$riga["Codice"]."</font></strong></font></td>
</tr>
<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Descrizione:</em></strong></font></span></td>
<td><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200">".$riga["Descrizione"]."</font></strong></font></td>
</tr>
<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Prezzo al pubblico:</em></strong></font></span></td>
<td><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200">".$riga["Prezzo"]."</font></strong></font></td>
</tr>
<tr>
<td height="100%"><span class="Stile1"><font face="Arial, Helvetica, sans-serif">________________________________________________</font></span></td>
<td height="100%"><span class="Stile1"><font face="Arial, Helvetica, sans-serif">________________________________________________</font></span></td>
</tr>
");

}
print "</TABLE>";
mysql_close();


Unica cosa che mi sa che non ho ben capito: ma devi mettere i valori affiancati a due a due su ogni riga? Perchè se è così la cosa inizia a diventare più difficile. Nell'esempio mio ho messo sulla prima colonna il nome e nella seconda il valore (sempre se non ho sbagliato con i tag, è che in questa finestrina è difficile leggere bene il codice)
 
1239642
1239642 Inviato: 26 Feb 2007 15:01
 

Anna ha scritto:
Io modificherei così (e ti risparmi anche tanto codice)

Codice:

$username="username";
$password="password";
$database="DBname";
$host="host";

mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM Caschi";
$result=mysql_query($query);

print "<table width="100%" border="0">";

while ($riga = mysql_fetch_array($result, MYSQL_ASSOC)) {

printf ("<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Modello:</em></strong></font></span></td>
<td><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200">".$riga["Modello"]."</font></strong></font></td>
</tr>
<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Codice:</em></strong></font></span></td>
<td><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200">".$riga["Codice"]."</font></strong></font></td>
</tr>
<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Descrizione:</em></strong></font></span></td>
<td><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200">".$riga["Descrizione"]."</font></strong></font></td>
</tr>
<tr>
<td height="100%"><font face="Verdana" SIZE="2"><strong><em>Prezzo al pubblico:</em></strong></font></span></td>
<td><font face="Verdana">&<strong><FONT SIZE="2" color="#bc1200">".$riga["Prezzo"]."</font></strong></font></td>
</tr>
<tr>
<td height="100%"><span class="Stile1"><font face="Arial, Helvetica, sans-serif">________________________________________________</font></span></td>
<td height="100%"><span class="Stile1"><font face="Arial, Helvetica, sans-serif">________________________________________________</font></span></td>
</tr>
");

}
print "</TABLE>";
mysql_close();


Unica cosa che mi sa che non ho ben capito: ma devi mettere i valori affiancati a due a due su ogni riga? Perchè se è così la cosa inizia a diventare più difficile. Nell'esempio mio ho messo sulla prima colonna il nome e nella seconda il valore (sempre se non ho sbagliato con i tag, è che in questa finestrina è difficile leggere bene il codice)


no no i valori 1 a sx, 2 a dx, 3 sotto a sx, 4 sotto a dx e così via......
mi va in errore il codice icon_confused.gif
 
Mostra prima i messaggi di:





Pagina 1 di 1

Non puoi inserire nuovi Topic
Non puoi rispondere ai Topic
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi
 
Indice del forumMotobarForum Internet & Hi-Tech

Forums ©