Precedente :: Successivo |
Autore |
Messaggio |
moonba Eroe

Registrato: 08/05/07 09:59 Messaggi: 46
|
Inviato: 26 Gen 2009 17:02 Oggetto: * php/mysql stampare i nomi dei campi |
|
|
ciao a tutti ho una select in cui visualizzo i record di una tabella,in che modo posso integrare il codice qui sotto affinchè visualizzi nella tabella come intestazioni i nomi dei campi della tabella del db?
Codice: |
$query = 'SELECT * FROM soggetti ';
$risultato = mysql_query($query,$db);//eseguo la query
$affectedrows = mysql_affected_rows($db);//verifico quanti record sono interessati alla query
// QUESTA TABELLA VISUALIZZA LA TABELLA SOGGETTI 1 E PERMETTE L'INSERIMENTO E LA MODIFICA DEI RELATIVI CAMPI'
print("<table border =\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"tabella\" >\n");
while($row = mysql_fetch_array($risultato, MYSQL_ASSOC))
{
print ("<tr>\n");
foreach($row as $k =>$v)
{
// print_r($row);
print("<td>$v ");
if($row['codicesoggetto'] == $v )
{
print "<br>";
print "<a href=\"cancellajoin.php? codicesoggetto=$row[codicesoggetto]\"><img class='icone' src='iconaelimina.gif' alt='elimina'></a>";
print "<br>";
print "<a href=\"modificaform.php? modalita=$modalita&codicesoggetto=$row[codicesoggetto]&cognome=$row[cognome]&nome=$row[nome]&datanascita=$row[datanascita]&citta=$row[citta]\"><img class='icone' src='iconamodifica.gif' alt='modifica' ></a>";
}
print("</td>");
}
print("</tr>\n");
}
print("</table>");
|
|
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 26 Gen 2009 17:53 Oggetto: |
|
|
Ciao,
potresti usare mysql_fetch_field($rs,$offset).
Riceve il recordset e l'offset del campo e ritorna un oggetto con dei meta sul campo, tra cui il nome.
Quindi tu potresti provare con:
Codice: |
<?php
$query = 'SELECT * FROM soggetti ';
$risultato = mysql_query($query,$db);//eseguo la query
$num=mysql_num_rows($rs); //NON mysql_affected_rows perchè serve per le insert, gli update e le delete!!!!!
print("<table border =\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"tabella\" >\n");
// stampiamo l'header
print '<tr>';
for ($i=0;$i < mysql_num_fields($risultato);++$i)
{
$meta=mysql_fetch_field($risultato, $i);
print '<th>' . $meta->name . '</th>';
}
print '</tr>;
// ora le righe
...
print("</table>");
?>
|
al posto delle righe metti il tuo codice che non mi è proprio chiaro cosa fa, o meglio, cosa vorresti che facesse.
I campi ritornati da una select * sono nell'ordine in cui sono stati creati nella tabella,quindi se vuoi un altro ordine dovrai necessariamente esplicitarli.
Se vuoi stampare una tabella in modo classico, ossia un header di x colonne e tante righe di x colonne modifica il precedente codice con:
Codice: |
<?php
$query = 'SELECT * FROM soggetti ';
$risultato = mysql_query($query,$db);//eseguo la query
$num=mysql_num_rows($rs); //NON mysql_affected_rows perchè serve per le insert, gli update e le delete!!!!!
$fields=array();
print("<table border =\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"tabella\" >\n");
// stampiamo l'header
print '<tr>';
for ($i=0;$i < mysql_num_fields($risultato);++$i)
{
$meta=mysql_fetch_field($risultato, $i);
$fields[]=$meta->name;
print '<th>' . $meta->name . '</th>';
}
print '</tr>;
// ora le righe
while ($row=mysqli_fetch_array($rs))
{
print '<tr>';
foreach ($fields as $f)
{
print '<td>';
print $row[$f];
/*
Se vuoi stampare i link di comando solo se sei nella colonna 'codicesoggetto' quello che hai scritto è pericoloso perchè se capita un valore di un campo identicolo a $row['codicesoggetto'] i link vengono proposti anche nella colonna sbagliata.
(Se non è come dico allora non ho capito la tua if)
La soluzione potrebbe essere:
*/
if ($f=='codicesoggetto')
{
print "<a href=\"cancellajoin.php? codicesoggetto=$row['codicesoggetto']\"><img class='icone' src='iconaelimina.gif' alt='elimina'></a>";
print "<br>";
print "<a href=\"modificaform.php? modalita=$modalita&codicesoggetto=$row['codicesoggetto']&cognome=$row['cognome']&nome=$row['nome']&datanascita=$row['datanascita']&citta=$row['citta']\"><img class='icone' src='iconamodifica.gif' alt='modifica' ></a>";
}
print '</td>';
}
print '</tr>;
}
print("</table>");
?>
|
In pratica nel vettore $fields inserisci i nomi dei campi nell'ordine in cui li hai trovati così tramite print $row[$f] stampi il valore giusto per ogni colonna.
Ciao |
|
Top |
|
 |
mdweb Dio maturo


Registrato: 18/12/07 16:59 Messaggi: 4412
|
Inviato: 26 Gen 2009 18:28 Oggetto: |
|
|
freemind ha scritto: | Ciao,
potresti usare mysql_fetch_field($rs,$offset).
Riceve il recordset e l'offset del campo e ritorna un oggetto con dei meta sul campo, tra cui il nome.
|
quoto:maggiori informazioni qui |
|
Top |
|
 |
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|