Tabella dinamica con php

sonico81

Nuovo Utente
13 Apr 2012
3
0
0
Salve a tutti, sto cercando di creare una tabella dinamica (in colonne) con php e mysql
Ho diverse query, e array contenenti le info da visualizzare:

Query_1 = SELECT Id, Nome, Cognome, Indirizzo FROM User
Campi_1 = array('Id', 'Nome', 'Cognome', 'Indirizzo')

Query_2 = SELECT Id, Libro, Titolo, Autore, Pagine, CasaEditrice FROM Biblioteca
Campi_2 = array ('Id', 'Libro', 'Titolo', 'Autore', 'Pagine', 'CasaEditrice')

Query_3 = SELECT Id, Città, Codice FROM City
Campi_3 = array('Id','Città','Codice')

e quello che tento di fare è che in base alla query e ai campi di creare una tabella dinamica in righe e colonne. Se ad esempio seleziono il gruppo _1 io avrò n righe e 4 colonne; se seleziono il gruppo _2 avrò n righe e 6 colonne, per il gruppo _3 avrò n righe e 3 colonne

quello che cerco di fare è:
PHP:
$data = new MysqlClass(); 
$data->connetti(); 
$post_sql = $data->query($Query);

<table> 
while($post_obj = $data->estrai($post_sql)){  
echo "<tr>";  
foreach($Campi as $Campo) {   
echo "<TD>".$post_obj->$Campo."</TD>"; 
echo "</tr>";   
}  
</table>

Non ho messaggi di errori, ma non viene eseguita la riga:
PHP:
 echo "<TD>".$post_obj->$Campo."</TD>";

la mia classe MysqlClass:
PHP:
class MysqlClass
{
  // parametri per la connessione al database
  private $nomehost = "localhost";     
  private $nomeuser = "root";          
  private $password = "root"; 
  private $nomedb = "database";
          
  // controllo sulle connessioni attive
  private $attiva = false;
 
// funzione per la connessione a MySQL
  public function connetti()
  {
   if(!$this->attiva)
    {
     if ($connessione = mysql_connect($this->nomehost,$this->nomeuser,$this->password) or die (mysql_error()))
      {
       // selezione del database
       $selezione = mysql_select_db($this->nomedb,$connessione) or die (mysql_error());
      }
    }
   else
    {
     return true;
    }
  }
    

//funzione per l'esecuzione delle query 
  public function query($sql)
  {
   if(isset($this->attiva))
    {
     $sql = mysql_query($sql) or die (mysql_error());
  	 return $sql;
    } 
   else 
    {
   	 return false; 
  	}
  }


//funzione per la disconnessione
  public function disconnetti()
  {
   if($this->attiva)
    {
     if(mysql_close())
      {
       $this->attiva = false; 
       return true; 
      } 
     else
      {
       return false; 
      }
    }
  }  
  
//funzione per l'estrazione dei dati
  public function estrai($risultato)
  {
   if(isset($this->attiva))
    {
	 $r = mysql_fetch_object($risultato);
     return $r;
    }
   else
    {
     return false; 
    }
  }

}    
?>

Mi potreste aiutare, Grazie
 

sonico81

Nuovo Utente
13 Apr 2012
3
0
0
Nella prima parte del messaggio indicavo che mi trovo nella situazione in cui ho diverse query differenti tra loro a cui e' associato un array contenente i campi da visualizzare. Query (_1) bla bla bla, Campi (_1) bla bla bla, Query (_2) bla bla bla, Campi (_2) bla bla. Con precedenti passaggi prelevo la Query e l'array di interesse e cerco di creare la tabella a seconda dei campi. Nel mess ho omesso <table> ... </table> ma ovvio che ho una pagina completa di tutti i tag. Il problema rimane nella riga:
echo "<td>".$post_obj->$campo."</td>";
Mi scuso per eventuali errori ma digito da un telefono!

Grazie!
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Nella prima parte del messaggio indicavo che mi trovo nella situazione in cui ho diverse query differenti tra loro a cui e' associato un array contenente i campi da visualizzare. Query (_1) bla bla bla, Campi (_1) bla bla bla, Query (_2) bla bla bla, Campi (_2) bla bla. Con precedenti passaggi prelevo la Query e l'array di interesse e cerco di creare la tabella a seconda dei campi. Nel mess ho omesso <table> ... </table> ma ovvio che ho una pagina completa di tutti i tag. Il problema rimane nella riga:
echo "<td>".$post_obj->$campo."</td>";
Mi scuso per eventuali errori ma digito da un telefono!

Grazie!
La classe del mysql ha molte cose superflue e migliorabili comunque essendo un fetch_object dovresti fare cosi

PHP:
echo "<TD>".$post_obj->Camposql."</TD>";
senza $ essendo un oggetto instanziato
 

sonico81

Nuovo Utente
13 Apr 2012
3
0
0
Mettendo $post_obj->CampoSql preclude che io conosca dall'inizio i campi SQL cosa che invece ho salvato in un array, pensavo di far fare tutto in automatico al foreach. Invece io cambio sia Query che campi, a seconda delle funzioni precedentemente eseguite.
Mi viene da pensare che debba modificare la classe MySqlClass, ma non so come.
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Mettendo $post_obj->CampoSql preclude che io conosca dall'inizio i campi SQL cosa che invece ho salvato in un array, pensavo di far fare tutto in automatico al foreach. Invece io cambio sia Query che campi, a seconda delle funzioni precedentemente eseguite.
Mi viene da pensare che debba modificare la classe MySqlClass, ma non so come.
Essendo un oggetto in ogni caso deve essere richiamato come istanza e no come variabile comunque
dove dichiari $Campi?
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non ho molta esperienze sull'uso delle classi (mi sono antipatiche) quindi perdonerete la mia put....ta quotidiana.
ma non potrebbe essere così?
PHP:
echo "<TD>".$post_obj->Camposql=$Campo."</TD>"
una risposta (anche offensiva) servirebbe anche a me per chiarirmi le idee
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
ciao
non ho molta esperienze sull'uso delle classi (mi sono antipatiche) quindi perdonerete la mia put....ta quotidiana.
ma non potrebbe essere così?
PHP:
echo "<TD>".$post_obj->Camposql=$Campo."</TD>"
una risposta (anche offensiva) servirebbe anche a me per chiarirmi le idee
No, tranquillo se non sai una cosa basta chiedere, $post_obj essendo un oggetto
richiama solo istanze di esso quindi questa "Camposql=$Campo" verrebbe considerata come un unica
istanza senza valore o errata, la soluzione migliore in questo caso sarebbe usare un fetch_array al posto dell'object
e fare una cosa simile:

PHP:
foreach($campi as $campo) echo $post_array[$campo];
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
grazie, ma se cambiassi nella classe
$r = mysql_fetch_object($risultato);
in
$r = mysql_fetch_array($risultato);
o
$r = mysql_fetch_assoc($risultato);
?
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Tabella dinamica con campi interni a td jQuery 1
P Tabella Dinamica in javascript (aggiungere righe con textinput) Javascript 1
V Tabella html dinamica con php PHP 4
P Stampare una tabella dinamica con dati json jQuery 1
C Tabella dinamica con jquery ephp jQuery 2
F Creare una tabella dinamica con la sintassi del W3C Javascript 1
A [Javascript] Somma di un campo in una tabella dinamica Javascript 0
A [Javascript] tabella dinamica e onchange su funzione Javascript 1
U [PHP - RISOLTO] Tabella dinamica: colonne selezionate da checkbox PHP 40
MarcoGrazia Riga di tabella dinamica e suggeritore Javascript 2
AlexPD Inserire tabella excel dinamica su pagina web PHP 4
felino [Smarty] Stampa di una tabella dinamica, condizione su una cella PHP 1
alankanz Tabella dinamica PHP 2
S tabella dinamica php html PHP 2
filippino Tabella larghezza dinamica HTML e CSS 1
L Tabella dinamica PHP 2
ypsilon86 Gestione di una tabella dinamica MySQL 21
M Creare tabella dinamica PHP 2
S Tabella dinamica php PHP 1
ypsilon86 Da un FORM creare una Tabella dinamica PHP 7
C Inserire dei dati di una tabella dinamica in un file esterno js Javascript 17
L Tabella dinamica HTML e CSS 2
P tabella dinamica PHP 3
F tabella dinamica e puntamento a record specifico Classic ASP 5
S generazione di una tabella dinamica Ajax 1
Wox Cambio colore tabella dinamica Classic ASP 7
C [PHP] email da tabella dinamica PHP 1
C aggiunta dinamica di una tabella senza ridirezione Javascript 3
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
S da casella di testo a campo tabella Database 0
E Tabella righe e colonne PHP 0
G Sviluppo tabella orizzontale in un certo ordine PHP 2
R tabella troppo grande Database 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
M Contare totale risultati tabella in un periodo di tempo PHP 5
E Php aggiornamento tabella PHP 9
L Riempimento di una tabella al click di un bottone Javascript 1
M Accodare record presi da un altra tabella PHP 8
E Estrarre dati da doppia tabella, banale ma non sempre PHP 1
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
N dati tabella non presi PHP 1
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
R INSERT INTO tabella non funziona Classic ASP 2
A Tabella con bottoni per aggiornamento record PHP 6
spider81man Creazione di un UNICA tabella da più file .CSV PHP 1
A filtro su tabella jQuery 3
S problema con recupero dati tabella mysql PHP 2
E Progressbar estrazione dati da tabella mySQL Ajax 9
D controllare valore in tabella mysql PHP 0

Discussioni simili