- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Visualizzare dati MYSQL in diverse tabelle
-
Visualizzare dati MYSQL in diverse tabelle
Ciao ragazzi,
ho scritto uno script che mi permette di visualizzare i dati che ho inserito nel database in una tabella. Funziona tutto alla perfezione.
Un campo del mio database si chiama "sezione";
siccome risulta poco comodo ottenere un'unica tabella con tutti i dati, vorrei creare una tabella diversa per ogni sezione, in modo da avere una videata più semplice.Il codice che mi genera la tabella è questo:
[PHP]$query = "SELECT * from ordini";
$dbResult = mysql_query($query, $db);
$AffectedRows = mysql_affected_rows($db);print "<table border= "1" >\n";
for ($index = 0; $index<$AffectedRows ; $index++)
{
$row = mysql_fetch_row ($dbResult);if ($index==0) {print "<tr>\n"; foreach ($row as $k => $v) { $myfield = mysql_fetch_field ($dbResult, $k); print ("<td><b>" . $myfield->name . "</b></td>"); } print "</tr>\n"; } foreach ($row as $k => $v) { if ($k!=1) {print ("<td>$v ");}; if ($k==0) { print "<br>"; print "<a href=\"cancella.php?id=$v\">Cancella</a>"; print "<br>"; print "<a href=\"modifica.php?id=$v\">Modifica</a>"; } print ("</td>\n"); if ($k==1) { print "<td><img class=prodotti src=img/prodotti/past_fresca/".$v." />"; } } print ("</tr>\n"); } print "</table>\n"; mysql_free_result ($dbResult); mysql_close ($db);[/PHP]
Ho provato ad aggiungere la clausola WHERE sezione = ___ nella SELECT, ma ottengo questo errore:
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\gocce_di_cioccolato\lista_prodotti.php on line 45
e la tabella comunque rimane vuota, nonostante i dati siano presenti.
Attendo un vostro aiuto!
Vi ringrazio della disponibilità, Lorenzo
-
Ciao lurex89,
aggiungi un or die(mysql_error()); alla funzione mysql_query per ottenere l'errore.
Comunque se il where lo hai aggiunto esattamente come hai scritto qui, mancano gli apici per la stringa.
-
ok, funziona, mi ero effettivamente dimenticato gli apici...
detto questo, è possibile creare con un ciclo che crea una tabella per ogni sezione, anzichè copiare e incollare cambiando solamente il nome della sezione nella query?
-
ok, ci sono riuscito, si può chiudere!
<?php
$nomesezione = array ("past_fresca", "past_secca", "salatini");
foreach ($nomesezione as $numero => $nome)
{
$query = "SELECT * from ordini WHERE sezione = '$nome'";
$dbResult = mysql_query($query, $db) or die (mysql_error());
$AffectedRows = mysql_affected_rows($db);print "<h2>$nome</h2>";
print "<table border= "1" >\n";for ($index = 0; $index<$AffectedRows ; $index++)
{
$row = mysql_fetch_row ($dbResult);if ($index==0) {print "<tr>\n"; foreach ($row as $k => $v) { $myfield = mysql_fetch_field ($dbResult, $k); print ("<td><b>" . $myfield->name . "</b></td>"); } print "</tr>\n"; } foreach ($row as $k => $v) { if ($k!=1) {print ("<td>$v ");}; if ($k==0) { print "<br>"; print "<a href=\"cancella.php?id=$v\">Cancella</a>"; print "<br>"; print "<a href=\"modifica.php?id=$v\">Modifica</a>"; } print ("</td>\n"); if ($k==1) { print "<td><img class=prodotti src=img/prodotti/".$nome."/".$v." />"; } } print ("</tr>\n"); } print "</table>\n";
};
mysql_free_result ($dbResult);
mysql_close ($db);
?>