ugrás a tartalomhoz

Create tablenél a tábla név változóba rakva

dc-hungary · 2008. Már. 27. (Cs), 20.48
Üdv!

Az alábbi kóddal próbáltam létrehozni egy táblát:


$nev=$_POST[nev]; //például: login

$sql = 'CREATE TABLE `ujlap`.`page_$nev` (`id` INT(11) NOT NULL, `cim` VARCHAR(100) NOT NULL, `szoveg` LONGTEXT CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL, `datum` VARCHAR(100) NOT NULL, `mindenki` VARCHAR(5) NOT NULL, `senki` VARCHAR(5) NOT NULL, `admin` VARCHAR(5) NOT NULL, `user` VARCHAR(5) NOT NULL, PRIMARY KEY (`id`)) ENGINE = MyISAM';
mysql_query($sql);
de az adatbázisomba a tábla neve így jelenik meg: page_$nev , nem pedig így: page_login

pedig az utóbbi lenne a jó..

hogy lehetne ezt megoldani? gondolom az sql parancsommal van a hiba, hogy a ` `közé nem lehet változót rakni, de biztos van rá valami megoldás :(

előre is köszönöm a segítséget!
Dani
 
1

aposztróf vs idézőjel

zila · 2008. Már. 27. (Cs), 21.24
A változó behelyettesítés csak idézőjellel határolt stringekben vagy heredoc szintakszisban működik. Ahogy az a manualban is benne vagyon.
2

miért fűzné össze

randomly · 2008. Már. 27. (Cs), 21.27
hát igen
$table = "page_$nev";
$table = 'page_'.$nev;

és így az sql be ... `$table` ...
3

nem sikerült..

dc-hungary · 2008. Már. 28. (P), 14.28
egyik válasz sem segített megoldani a problémát..
4

Remélem a nem kellő részletességű magyarázat a gond,...

Velias9 · 2008. Már. 28. (P), 15.04
... mert ha így van, akkor szerintem valami ilyesmire gondolnak:

...

$nev = $_POST[nev]; //például: login  
  
$sql = "CREATE TABLE 'ujlap'.'page_" . $nev . "' ('id' INT(11) NOT NULL, 'cim' VARCHAR(100) NOT NULL, 'szoveg' LONGTEXT CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL, 'datum' VARCHAR(100) NOT NULL, 'mindenki' VARCHAR(5) NOT NULL, 'senki' VARCHAR(5) NOT NULL, 'admin' VARCHAR(5) NOT NULL, 'user' VARCHAR(5) NOT NULL, PRIMARY KEY ('id')) ENGINE = MyISAM";
mysql_query($sql); 

...
Megjegyezném, hogy (amennyiben nem tetted) be kell védened a scriptet SQL-beoltás ellen. (Ha nem tudod, hogy mi az, akkor nézz utánna, mert hoszzú és nem nagyon érek rá.) Valamint én ajánlom, hogy használj idézőjelet a string határainál és aposztrófot a tábla ill. mezőnevek határolásához (itt megjegyezném, hogy a tábla ill. a mező neveket nem muszály valamiféle idézőjelbe tenni).
5

Ez valami dinamikus...

Ronyn · 2008. Már. 28. (P), 16.56
táblalétrehozás?
...akkor talán nem ártana ujra átgondolni az adatbázisstrukturát..
6

thx

dc-hungary · 2008. Már. 28. (P), 20.30
köszi mindenkinek, az utolsó előtti hozzászólónak pedig méginkább ;) segített :)