Oppure

Loading
15/11/14 12:48
Aangelus
Salve a tutti
ho un database mysql dove vengono registrati gli utenti, adesso avrei bisogno di creare su un'altro database delle tabelle che hanno come nome l'id del primo database ho provato in questa maniera subito dopo l'inserimento dell'utente nel database

$Query = "INSERT INTO tblutenti ";
$Query.= "(Nome, Password, email, Sesso) ";
$Query.="VALUES ('" . $Nome . "', '$Pass', '".$email."', '".$Sesso."'  )";
 
if (mysql_query($Query, $ConData)){
    /* dopo che inserisce va a ritrovare l'ID nel database   $ConData */
   $controllo=mysql_query("SELECT ID,Nome FROM tblutenti WHERE Nome='$Nome'") or die (mysql_error());
$quantiutenti=mysql_num_rows($controllo);
/* se ho un riscontro positivo */
if ($quantiutenti == 1)
{
if ($row=mysql_fetch_array($controllo))
{
$id=$row["ID"];
 /* $id dovrebbe diventare la variabile del nome della tabella */
        
           $query = "CREATE TABLE $id ( 
            nome varchar(50) NOT NULL, 
            id int(11) NOT NULL auto_increment,
            PRIMARY KEY (id) 
            )   TYPE=MyISAM;"; 
 
            $result = mysql_query($query, $ConData2);      /* $ConData2  è il riferimento dell'altro database aperto con include*/

}
}    
 
       
 }

Ultima modifica effettuata da Aangelus 15/11/14 12:49
aaa
15/11/14 22:50
Aangelus
Ho risolto parzialmente con questo codice



$g = 'Aangelus' ;
$query = 'CREATE TABLE ' . $g . '( '.
'id INT NOT NULL AUTO_INCREMENT, '.
'Nome TEXT(20) NOT NULL, '.
'Pass TEXT(50) NOT NULL, '.
'email TEXT(17) NOT NULL, '.
'PRIMARY KEY(id))';



in questo modo crea normalmente la tabella ma se provo a sostituire 'Aangelus' con una variabile per assegnare l'id come
$g= $_SESSION["ID"]; non funziona più restituendomi questo errore:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
suggerimenti ?
Ultima modifica effettuata da Aangelus 15/11/14 22:51
aaa
16/11/14 1:18
Roby94
Cioè tu vuoi creare una tabella per ogni utente??
aaa
16/11/14 9:52
Aangelus
Si anche se so che non è molto usuale dovrei gestire moltissimi dati
aaa
16/11/14 20:09
dnha
Ciao :)
Di solito quell'errore si verifica quando c'è un errore di sintassi all'interno della query: prova a controllare gli apici.
$query = "CREATE TABLE $g (
id INT NOT NULL AUTO_INCREMENT,
Nome TEXT(20) NOT NULL,
Pass TEXT(50) NOT NULL,
email TEXT(17) NOT NULL,
PRIMARY KEY(id))";

Così dovrebbe funzionare :k:
aaa
16/11/14 20:23
Aangelus
grazie del suggerimento, copiato e incollato, solo che ho ricevuto il medesimo errore
aaa
17/11/14 1:43
Roby94
Non ho MySQL installato in questo momento e quindi non posso verificare, ma credo che la regola vietati campi che iniziano per numero valga anche per i nomi delle tabelle, prova a modificarlo per esempio con '_$g' oppure 'user_$g'.
aaa
17/11/14 11:31
Aangelus
Ho provato con entrambi i suggerimenti ma all'assegnazione dell'id crea un errore

user_$g = $_SESSION["ID"];

ho creato direttamente da mysql una tabella con nome 10 e nome campo 10 è l'ha inserita nel database senza nessun problema
aaa