- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Creazioni Tabelle mysql in php
-
Creazioni Tabelle mysql in php
Buonasera,
come mai non viene creata nessuna tabella mysql ??
il codice è il seguente
[php]
$query = "CREATE TABLE news (id INT (5) UNSIGNED not null AUTO_INCREMENT, titolo VARCHAR (255) not null , testo TEXT not null , data INT (11) , autore VARCHAR (50) , mail VARCHAR (50) , PRIMARY KEY (id))";
[/php]
Va tutto liscio ma non crea niente.
P.s. sto in locale
-
Posta il codice per intero(stringa di connessione,nome Db),così si capisce poco.
-
@vnt54 said:
(stringa di connessione,nome Db),così si capisce poco.
si capisce poco ??
[php]
<?php
session_start();
// Dati connessione al database
$db_host = 'xxx';
$db_utente = 'xxx';
$db_password = 'xxx';
$db_nomedb = 'yyy';// Effettua la connessione al database
$dbh = @mysql_connect ($db_host, $db_utente, $db_password) or die ("Errore! Impossibile connettersi al Server $db_host: ");
@mysql_select_db($db_nomedb) or die ("Impossibile selezionare il database <font color="red"> $db_nomedb </font>");?>
[/php]Va bene così ?
-
Se non erro manca Engine=MyISAM nella query.
prova.
-
La query è corretta,
dovresti controllare quando la esegui che problema ti segnala.
-
@aernews said:
La query è corretta,
dovresti controllare quando la esegui che problema ti segnala.
non mi segnala nessun problema, ma la tabella nel database non viene creata
-
Che codice usi per lanciare la query?
L'utente che si connette ha i diritti per creare tabelle?
-
@aernews said:
Che codice usi per lanciare la query?
L'utente che si connette ha i diritti per creare tabelle?
No vabbè quello non centra... ho aggiustato così
[php]
$query2 = mysql_query("CREATE TABLE new
(id int(11) NOT NULL auto_increment,
user varchar(20) NOT NULL,
risposta varchar(100) NOT NULL default '',
PRIMARY KEY (id)
)
TYPE=MyISAM;") or die ("Impossibile creare la tabella " .mysql_error() );
mysql_query($query2,$db);
[/php]
e funziona... va bene
solo che devo cercare di far creare tabelle con nomi diversi ma con la stessa struttura in automatico, quindi avevo pensato così[php]
<textarea id="rispondi" name="rispondi" rows=4 cols=38></textarea>
$tabella = $_POST['rispondi'];$query2 = mysql_query("CREATE TABLE $tabella (id int(11) NOT NULL auto_increment, user varchar(20) NOT NULL, risposta varchar(100) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM;") or die ("Impossibile creare la tabella " .mysql_error() ); mysql_query($query2,$db); $inserimento = "INSERT INTO $tabella (user,rispondi)"; $query .= "VALUES('".$user."','".$_REQUEST['risposta']."')";
[/php]
Funziona tutto solo che non mi crea la tabella con il nome assunto dalla variabile $tabella inviata via POST dall'utente!
-
Apparte il fatto che inserire in una query del contenuto prelevato da POST senza fare nessuna validazione è da codice penale ;), qui:
[HTML]<textarea id="rispondi" name="rispondi" rows=4 cols=38></textarea>[/HTML]
vedo un po' troppe slash prima delle virgolette, le ha messe il forum o le hai tu nel tuo HTML?
-
@html5today said:
Apparte il fatto che inserire in una query del contenuto prelevato da POST senza fare nessuna validazione è da codice penale ;), qui:
[html]<textarea id="rispondi" name="rispondi" rows=4 cols=38></textarea>[/html]vedo un po' troppe slash prima delle virgolette, le ha messe il forum o le hai tu nel tuo HTML?Che centrano gli slash... ci sono perchè è integrato codice html in php... cmq sia ho agiustato così e funziona
[php]
$crea = mysql_query("CREATE TABLE $user
(id int(11),
codice_utente int(11) NOT NULL auto_increment,
user varchar(20) NOT NULL,
risposta varchar(100) NOT NULL default '',
PRIMARY KEY (codice_utente)
)
TYPE=MyISAM;") or die ("Impossibile creare la tabella " .mysql_error() );
mysql_query($crea,$db);
[/php]
dove $user l'ho ricavato dall'utente che invia l'articolo quindi deve essere registrato al sito
-
Scusa ma mi spieghi il senso di un design che prevede la creazione di una tabella per ogni utente che si registra? Immagino che tu non stia prevedendo un alto numero di registrazioni...
-
@html5today said:
Scusa ma mi spieghi il senso di un design che prevede la creazione di una tabella per ogni utente che si registra? Immagino che tu non stia prevedendo un alto numero di registrazioni...
No quel codice viene eseguito ogni volta che un utente diverso inserisce un articolo nel sito, e ogni utente è libero di commentare quell'articolo, quindi si crea un'altra tabella con chiavi esterne per memorizzare i commenti degli utenti per quel determinato articolo.
-
Quindi crei una tabella per ogni articolo?!?
-
Bhe per il momento è l'unica soluzione che mi viene in mente