Creare tabella da pagina php popolata con valori passati con POST

Max61

Utente Attivo
2 Mar 2014
654
3
18
Salve, un saluto a tutti i membri del forum, sto cercando di creare alcune tabelle da pagina php con inserimento contestuale di valori passati con POST.
Il nome della tabella dovrà essere dato dal valore passato dal campo $livello e l'id della tabella creata dovrà essere "id e il valore passato dal campo $livello"
Es.: campo $livello = az4
L'ID dovrà essere idaz4
Ho fatto la query che allego, ma non funziona...
PHP:
$query = "CREATE TABLE IF NOT EXISTS livello (

  livello int(11) NOT NULL AUTO_INCREMENT,
  costo_feriale varchar(10) NOT NULL,
  costo_festivo varchar(10) NOT NULL,
  PRIMARY KEY ('id'$livello)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

INSERT INTO livello (livello, costo_feriale, costo_festivo)
        VALUES ('$livello', '$costo_feriale', '$costo_feriale')";
Grazie
Max61
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
scusa ma cosa vuoi creare? intanto non capisco cosa tu intenda con quel
PRIMARY KEY ('id'$livello)
tra non definisci prima il campo id, come è? int, generalmente si?
poi, secondo me, le query di creazione e inserimento le fare separate
 

Max61

Utente Attivo
2 Mar 2014
654
3
18
Ciao Borgo Italia nel db ci sono tante tabelle quanti sono i livelli create tutte manualmente e sono strutturate così:
l'id si chiama id+il nome del livello, questa per esempio è la struttura della tabella livello b2
PHP:
CREATE TABLE IF NOT EXISTS `b2` (
  `idb2` int(11) NOT NULL AUTO_INCREMENT,
  `costo_feriale` double(10,2) NOT NULL,
  `costo_festivo` double(10,2) NOT NULL,
  PRIMARY KEY (`idb2`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
l'idea consiste, nel caso di inserimento di nuovi livelli, che l'utente tramite apposita form inserisca il livello, il costo feriale e quello festivo autonomamente.
Con la speranza di essermi spiegato, ti ringrazio e ti saluto
Max61
 

macus_adi

Utente Attivo
5 Dic 2017
1.141
65
48
IT/SW
Pensare ad una tabella tipizzata?
Nel type metti il livello, in questo modo non devi creare n tabelle, nel type metti il valore della variabile livello post!

Codice:
CREATE TABLE IF NOT EXISTS `container_generale` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
   `type` varchar(5),
  `costo_feriale` double(10,2) NOT NULL,
  `costo_festivo` double(10,2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
come dice macus_adi, oppure due tabelle di cui una in cui scrivi quello che ti serve sui livelli, che poi lavori tramite le join
Codice:
CREATE TABLE IF NOT EXISTS utenti (
  id int(11) NOT NULL AUTO_INCREMENT,
  id_livello int(11),
  costo_feriale double(10,2) NOT NULL,
  costo_festivo double(10,2) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS livello (
  id int(11) NOT NULL AUTO_INCREMENT,
  livello varchar(50),//descrizione del livello se serve
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;