Autor | Zpráva | ||
---|---|---|---|
cenek Profil * |
#1 · Zasláno: 15. 1. 2007, 15:12:41
Dobrý den, potřeboval bych poradit, jak vytvořit tabulku v MySQL, která se bude jmenovat podle obsahu proměnné. Například:
mysql_query ("create table $jmeno_tabulky(id integer primary key auto_increment, nick varchar(20), prispevky TEXT)"); píše mi to hlášku, že mám nějakou chybu v SQL syntaxi a vůbec nevim, o co se jedná... Kdyby jsem dal místo tý proměnný nějaký jméno např. kniha, tak to funguje... |
||
karel Profil * |
#2 · Zasláno: 15. 1. 2007, 15:32:54
třeba je problém s předáním té proměnné $jmeno_tabulky do toho dotazu ... a tím pádem se snažíš uložit tabulku s názvem "$jmeno_tabulky" ?
|
||
cenek Profil * |
#3 · Zasláno: 15. 1. 2007, 15:39:39
jo, aspoň to si MySQL myslí
|
||
karel Profil * |
#4 · Zasláno: 15. 1. 2007, 15:48:41
no takže není problém s SQL, ale s PHP.... jakým způsobem přiřazuješ obsah do té proměnné?
|
||
cenek Profil * |
#5 · Zasláno: 15. 1. 2007, 15:50:39
klasika... $jmeno_tabulky="naky meno";
|
||
karel Profil * |
#6 · Zasláno: 15. 1. 2007, 15:58:53
nevím, nic mi to neříká :(, zkus tohle:
MySQL_Query ("create table ".$jmeno_tabulky." (id int auto_increment, nick varchar(20), prispevky TEXT, primary key(id));"); |
||
cenek Profil * |
#7 · Zasláno: 15. 1. 2007, 16:01:34
už sem to zkoušel, a nepomohlo to...
|
||
Icepoint Profil |
#8 · Zasláno: 15. 1. 2007, 16:02:45
mozna zalezi na verzi mysql ... skus "create table '$jmeno_tabulky' ..."
|
||
cenek Profil * |
#9 · Zasláno: 15. 1. 2007, 16:06:05
Tohle taky nepomohlo, Sice mi to tu proměnnou zřetězí, ale hlásí mi to zas nákou chybu
|
||
karel Profil * |
#10 · Zasláno: 15. 1. 2007, 16:12:09
napiš jakou chybu (přesně)
|
||
cenek Profil * |
#11 · Zasláno: 15. 1. 2007, 16:13:56
Dobre... Dnes us nemam cas, zitra to sem dam. Dik za ochotu :)
|
||
cenek Profil * |
#12 · Zasláno: 15. 1. 2007, 21:23:22
dělal jsem to různými způsoby, ale ani jeden nefunguje
Tak problém je tento: //$id po kazdym zapisu naroste o 1 $sql = <<<sql CREATE TABLE $id(jmeno varchar(20),prispevek text,datum varchar(30),id integer primary key auto_increment) sql; mysql_query($sql, $spojeni) or die("Nelze vytvorit tabulku: " . mysql_error() . mysql_errno()); Hlaska: Nelze vytvorit tabulku: 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 '70(jmeno varchar(20),prispevek text,datum varchar(30),id integer primary key aut' at line 11064 ___________________________________________ $sql="CREATE TABLE $id(jmeno varchar(20),prispevek text,datum varchar(30),id integer primary key auto_increment)"; mysql_query($sql, $spojeni) or die("Nelze vytvorit tabulku: " . mysql_error() . mysql_errno()); Hlaska: Nelze vytvorit tabulku: 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 '71(jmeno varchar(20),prispevek text,datum varchar(30),id integer primary key aut' at line 11064 ___________________________________________ $sql="CREATE TABLE '$id'(jmeno varchar(20),prispevek text,datum varchar(30),id integer primary key auto_increment)"; mysql_query($sql, $spojeni) or die("Nelze vytvorit tabulku: " . mysql_error() . mysql_errno()); Hlaska: Nelze vytvorit tabulku: 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 ''72'(jmeno varchar(20),prispevek text,datum varchar(30),id integer primary key a' at line 11064 ___________________________________________ Výsledek je stejný jako předchozí, i když tam dám CREATE TABLE ".$id."(jmeno varchar(20)..." ___________________________________________ No, a kdys zadam misto promenny $id normalni text, tak se tabulka vytvori $sql="CREATE TABLE tabulka2(jmeno varchar(20),prispevek text,datum varchar(30),id integer primary key auto_increment)"; mysql_query($sql, $spojeni) or die("Nelze vytvorit tabulku: " . mysql_error() . mysql_errno()); ___________________________________________ A nakonec zadam do konzole: mysql> CREATE TABLE tabulka(jmeno varchar(20),prispevek text,datum varchar(30),id integer primary key auto_increment); Query OK, 0 rows affected (0.33 sec) A tabulka se vytvori |
||
cenek Profil * |
#13 · Zasláno: 16. 1. 2007, 14:09:54
Ještě něco... Mám PHP5 a MySQL5
|
||
Mergi Profil * |
#14 · Zasláno: 16. 1. 2007, 22:03:43
$sql="CREATE TABLE $jmeno_tabulky ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY ( id), jmeno VARCHAR(20), prispevek TEXT, datum DATE)";
http://mysql.org/doc/refman/5.0/en/create-table.html |
||
cenek Profil * |
#15 · Zasláno: 16. 1. 2007, 22:54:39
Tam není problém s tímhle: id INT NOT NULL AUTO_INCREMENT Mám problém ten, že jakmile do názvu strčím proměnnou, tak mi to napíše furt stejnou chybovou hlášku... Díky za link.
|
||
Aesir Profil |
#16 · Zasláno: 16. 1. 2007, 22:59:01 · Upravil/a: Aesir
cenek:
Název tabulky nesmí začínat číslicí. edit: resp. musí začínat písmenem |
||
cenek Profil * |
#17 · Zasláno: 16. 1. 2007, 23:00:25
Hmm, v tom návodu na http://mysql.org/doc/refman/5.0/en/create-table.html se řeší, jak vytvořit tabulku přímo pomocí SQL, ale mě obyčejná SQL syntaxe v konzoli funguje
|
||
cenek Profil * |
#18 · Zasláno: 16. 1. 2007, 23:12:45
Děkuji. Jsem trochu začátečník. S číslem to nefunguje ani v konzoli :) Omlouvám se, moje chyba.
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0