ugrás a tartalomhoz

Create table változó névvel

N1k3b0y · 2007. Már. 11. (V), 00.56
Üdvözletem!

Adott egy php kód aminek a create table-s része igy néz ki:

$sql = 'CREATE TABLE `szoveg` (


Szeretném azt elérni, hogy html-ben megirt ürlapon amit beirok a kis rublikába azt értelmezze a "szoveg" helyén.
Tehát ha beírom hogy tabla3-at akarok akkor ez legyen a table neve.
Kérdés miylen parancsokkal lehetséges ez?
a html kód igy néz ki hozzá:

<body>
<form method="post" action="valami.php">
<p>&nbsp;</p>
<p><span class="style2">Új rendszám:</span>
<input name="szoveg" type="text" id="szoveg" />
<p>
<input type="submit" value="bevisz!" />
</body>
 
1

így

Joó Ádám · 2007. Már. 11. (V), 03.22
$sql = 'CREATE TABLE `'.$_POST['szoveg'].'` (
Egyébként ez milyen rendszer, mia célja a programnak? (Elég fura ez a rendszám sql táblák összefüggésében).
2

Kis elővigyázatosság

szotsaki · 2007. Már. 11. (V), 08.06
Nem túlságosan ajánlott a $_POST vagy $_GET tömb bármely elemét betenni közvetlenül SQL kérésbe.
$tablanev = trim(mysql_real_escape_string($_POST['szoveg']));
mysql_query = ("CREATE TABLE $tablanev") or die(mysql_error());
3

syntax

N1k3b0y · 2007. Már. 11. (V), 14.30
Ezzel énis probálékoztam de a 2. sorba syntax error-t a '=' -jel re ir ki
ez miért lehet??
$tablanev = trim(mysql_real_escape_string($_POST['szoveg']));
mysql_query = ("CREATE TABLE $tablanev") or die(mysql_error()); (

Amugy a lényege az oldalnak, az lenne, hogy külön táblákba rendszáámokat veszek fel, ezen táblák belül végiglehetne nézni hogy mikor volt olajcsere, az utóban hány kilmetrt futott akkor stb..
erre kéne
4

vissza idézőjel?

klimakiraly · 2007. Már. 11. (V), 20.52
Helló!

Szerintem a vissza idézőjel vagy nem tudom mi a neve a titok.

És a CREATE TABLE többi paramétere is kell még.

K.K.

$tablanev = trim(mysql_real_escape_string($_POST['szoveg']));
mysql_query = ("CREATE TABLE `$tablanev` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`mikor` DATE NOT NULL ,
`km_ora_allas` INT NOT NULL
) TYPE = MYISAM ;");
5

szia

virág · 2007. Már. 12. (H), 08.35
Szia!

Biztos naiv a hozzászólásom, de miért nem debuggolsz? Pl. irasd ki egy szöveges
fájlba a generált SQl parancsot, próbáld futtatni és máris látni fogod mit rontottál el... Nem?
6

ez biztos jó?...

TeeCee · 2007. Már. 12. (H), 12.22
Hali! :o)

Én azért még futnék egy kört, mert ez nekem gyanús, vagy csak én nem tudtem eddig ilyesmiről...

mysql_query = ("CREATE TABLE $tablanev") or die(mysql_error());
// helyett:
mysql_query("CREATE TABLE $tablanev") or die(mysql_error());

<?php
mysql_query = ("CREATE TABLE $tablanev") or die(mysql_error());
?>
Ez nálam ezt adja:
Parse error: parse error, unexpected '=' in c:\webserver\apache\htdocs\t.php on line 2

BYE: TeeCee :o)
7

opsz egyenlő

klimakiraly · 2007. Már. 12. (H), 20.30
Szia TeeCee!

Miket észre nem veszel ... pedig kiüti szemem tényleg nem kéne az az egyenlőség. :-)

K.K.
8

Elég furcsa

Nagy Gusztáv · 2007. Már. 13. (K), 12.37
külön táblákba rendszáámokat veszek fel, ezen táblák belül végiglehetne nézni hogy mikor volt olajcsere, az utóban hány kilmetrt futott akkor stb..

Azért ez nekem elég furcsa adatbázis terv. Jól értem, hogy ha lesz 10.000 regisztrált rendszámod, akkor lesz 10.000 táblád? Na ne már! Ebből soha nem fogsz "összesített" lekérdezéseket csinálni (pl. kilistázni az utolsó 20 olajcsere rendszámát).
Ne keverd össze a tábla és a rekord fogalmát!

Szerintem kellene egy autó tábla rendszám kulccsal, és egy esemény tábla rendszám külső kulccsal - vagyis 1-n kapcsolat. Ez miért nem jó neked?
9

jogos!...

TeeCee · 2007. Már. 14. (Sze), 09.47
... annyira, hogy nagyon!
Nem is figyeltem ezt, csak a kódra kukkantottam.
10

Thx

N1k3b0y · 2007. Már. 15. (Cs), 11.20
Köszönöm az 5leteket és sok T_STRING-es hiba után sikerült eljussak idáig:

$tablanev = trim(mysql_real_escape_string($_POST['szoveg']));
mysql_query("CREATE TABLE $tablanev") or die(mysql_error()); ('
	`olajcsere` VARCHAR(50) CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL, 
       `kilometer` VARCHAR(50) CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL, 
       `datum` VARCHAR(50) CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL, 
       `megjegyzes` VARCHAR(100) CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL 
	PRIMARY KEY ( `olajcsere` ) ');
De még mindig nem az igazi, mert mostmár lefut a dolog,de egy ilyet ad ki nekem amivel még nem igazán találkoztam. : A table must have at least 1 column
11

olvass, tanulj...

TeeCee · 2007. Már. 15. (Cs), 15.31
... mert ennek így nagyon rossz vége lesz.

PHP-t honnan tanulod? SQL-t honnan?
Kellene, hogy utánaolvass picit és előtte gyógypéldákat írogassál, mert ez így nem fog menni.

Azért írja, hogy legalább 1 mezőt meg kell adni a táblának, mert nem adsz meg.
Az SQL utasításod ennyi: "CREATE TABLE $tablanev".
Utána amit a zárójelen belülre raksz, az egy string, azon nincs mit végrehajtani...

mysql_query("CREATE TABLE $tablanev
    `olajcsere` VARCHAR(50) CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL, 
       `kilometer` VARCHAR(50) CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL, 
       `datum` VARCHAR(50) CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL, 
       `megjegyzes` VARCHAR(100) CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL 
    PRIMARY KEY ( `olajcsere` ) ") or die(mysql_error();
így már valszeg menni fog, feltéve, hogy :
1. Az SQL helyes (nem szoktam SQL-ből táblát létrehozni, arra a PHPMyAdmint használom...)
2. Nem tartalmas szintaktikai hibát, mert nem futtattam, csak leírtam. Azért igyekeztem hibamentesen, de mint láthattuk korábban, ez nem mindig elég...

Naszóval: ne sértődj meg, de azt kell mondjam, hogy fogalmam sincs, hogy fog kinézni az alkalmazásod. Mármint megvalósításilag, mert rögtön 2 olyan problémával jöttél ide, amiből (számomra) az következik, hogy első PHP kódod. Azt ne ilyennel kezd. Gyógypéldák. (Vendégkönyv, szavazás, képre conyright-generálás, ilyesmik)
Az SQL-t is olvasd át, mire és hogyan való, a felépítésből (minden rendszám külön tábla, vagy csak én értettem félre?) ott is zavart érzek az erőben...

Jó pihit hétvégére!