Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Tabella dinamica
Forum - PHP - Tabella dinamica

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
Aangelus (Normal User)
Pro


Messaggi: 143
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 13:48
Sabato, 15/11/2014
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
Codice sorgente - presumibilmente Php

  1. $Query = "INSERT INTO tblutenti ";
  2. $Query.= "(Nome, Password, email, Sesso) ";
  3. $Query.="VALUES ('" . $Nome . "', '$Pass', '".$email."', '".$Sesso."'  )";
  4.  
  5. if (mysql_query($Query, $ConData)){
  6.     /* dopo che inserisce va a ritrovare l'ID nel database   $ConData */
  7.    $controllo=mysql_query("SELECT ID,Nome FROM tblutenti WHERE Nome='$Nome'") or die (mysql_error());
  8. $quantiutenti=mysql_num_rows($controllo);
  9. /* se ho un riscontro positivo */
  10. if ($quantiutenti == 1)
  11. {
  12. if ($row=mysql_fetch_array($controllo))
  13. {
  14. $id=$row["ID"];
  15.  /* $id dovrebbe diventare la variabile del nome della tabella */
  16.        
  17.            $query = "CREATE TABLE $id (
  18.            nome varchar(50) NOT NULL,
  19.            id int(11) NOT NULL auto_increment,
  20.            PRIMARY KEY (id)
  21.            )   TYPE=MyISAM;";
  22.  
  23.             $result = mysql_query($query, $ConData2);      /* $ConData2  è il riferimento dell'altro database aperto con include*/
  24.  
  25. }
  26. }    
  27.  
  28.        
  29.  }


Ultima modifica effettuata da Aangelus il 15/11/2014 alle 13:49
PM Quote
Avatar
Aangelus (Normal User)
Pro


Messaggi: 143
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 23:50
Sabato, 15/11/2014
Ho risolto parzialmente con questo codice

Codice sorgente - presumibilmente Php

  1. $g = 'Aangelus' ;
  2. $query = 'CREATE TABLE ' . $g . '( '.
  3. 'id INT NOT NULL AUTO_INCREMENT, '.
  4. 'Nome TEXT(20) NOT NULL, '.
  5. 'Pass TEXT(50) NOT NULL, '.
  6. 'email TEXT(17) NOT NULL, '.
  7. '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 il 15/11/2014 alle 23:51
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 2:18
Domenica, 16/11/2014
Cioè tu vuoi creare una tabella per ogni utente??

PM Quote
Avatar
Aangelus (Normal User)
Pro


Messaggi: 143
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 10:52
Domenica, 16/11/2014
Si anche se so che non è molto usuale dovrei gestire moltissimi dati

PM Quote
Avatar
dnha (Member)
Pro


Messaggi: 137
Iscritto: 24/07/2014

Segnala al moderatore
Postato alle 21:09
Domenica, 16/11/2014
Ciao :)
Di solito quell'errore si verifica quando c'è un errore di sintassi all'interno della query: prova a controllare gli apici.
Codice sorgente - presumibilmente Php

  1. $query = "CREATE TABLE $g (
  2. id INT NOT NULL AUTO_INCREMENT,
  3. Nome TEXT(20) NOT NULL,
  4. Pass TEXT(50) NOT NULL,
  5. email TEXT(17) NOT NULL,
  6. PRIMARY KEY(id))";


Così dovrebbe funzionare :k:

PM Quote
Avatar
Aangelus (Normal User)
Pro


Messaggi: 143
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 21:23
Domenica, 16/11/2014
grazie del suggerimento, copiato e incollato, solo che ho ricevuto il medesimo errore

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 2:43
Lunedì, 17/11/2014
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'.

PM Quote
Avatar
Aangelus (Normal User)
Pro


Messaggi: 143
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 12:31
Lunedì, 17/11/2014
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

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 13:11
Lunedì, 17/11/2014
Testo quotato

Postato originariamente da Aangelus:user_$g = $_SESSION["ID"];


...Non ho proprio parole...

Scusa, ma a parer tuo, perché quella porzione di codice dovrebbe darti errore?

user_$g era inteso come nome della tabella. es "user_5".

Almeno abbiamo capito che una tabella con numero come primo carattere si puo fare.
Scusa ma a questo punto copia e incolla la query che genera phpmyadmin cosi vediamo che accorgimenti prende per far eseguire la query, ricordo che in alcuni casi nelle query va usato al posto dell "apice" l'"apice inclinato"

PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo