Autor | Zpráva | ||
---|---|---|---|
Jobík Profil |
#1 · Zasláno: 22. 8. 2008, 07:41:36
Zdravím potřeboval bych toto : pokud je podmínka splněna vytvoří se mi tabulka se jménem stejným jako je hodnota proměné $adresa se sloupci text, jmeno, předmět, icq
skoušel sem : if($klik) { CREATE TABLE $adresae( id int( 11 ) NOT NULL auto_increment, text varchar( 150 ) NOT NULL default '', heslo varchar( 25 ) NOT NULL default '', email varchar( 35 ) NOT NULL default '', ip varchar( 20 ) NOT NULL default '', UNIQUE KEY id( id) ); } - Ale to nejde pro símporaďte |
||
Jobík Profil |
#2 · Zasláno: 22. 8. 2008, 08:47:47
Prosím nevím jak to mám udělat prostě potřebuji aby pokud se mi splní podmínka tak mi to vytvoří tabulku se nějakými sloupcito je ted jedno s jakýmy
|
||
Alphard Profil |
#3 · Zasláno: 22. 8. 2008, 08:59:54
musíte se připojit k databázi a použít funkce pro práci s ním, sql příkazy nevyhodnotí PHP
|
||
Jobík Profil |
#4 · Zasláno: 22. 8. 2008, 09:05:27
Alphard
To je mi jasné ale jak na to??? Neznáš nějaký web kde by se to dalo přečíst přesně tento script nebo mporaď |
||
nightfish Profil |
#5 · Zasláno: 22. 8. 2008, 09:08:12
„Neznáš nějaký web“
http://linuxsoft.cz/php - díly 34 až 42 |
||
Alphard Profil |
#6 · Zasláno: 22. 8. 2008, 09:08:41 · Upravil/a: Alphard
|
||
Jobík Profil |
#7 · Zasláno: 22. 8. 2008, 09:40:49 · Upravil/a: Jobík
Už mi to skoro funguje ale potřeboval bych aby název tabulky byl stejný jako proměná $adresa
Když to napíši takto : mysql_query("CREATE TABLE $adresa(odesilatel varchar(50),predmet varchar(15),text varchar(999999))"); tak mi to píše A table must have at least 1 column Jak tam mám dosadit proměnou?? |
||
nightfish Profil |
#8 · Zasláno: 22. 8. 2008, 09:42:57 · Upravil/a: nightfish
Jobík
varchar je řetězcový typ, jeho délka se určuje při vytváření sloupce (to číslo v závorce) jinak tvůj problém spočívá v tom, že tam máš dvě uzavírací závorky (jinak max. délka varchar je imho 255) EDIT: v mysql 5.0.3 a novějších je maximální délka varcharu 65535 znaků (avšak je omezena maximální délkou řádku, která je 65535 bytů a je sdílena všemi sloupci (pravděpodobně kromě blobů a textů)) |
||
Jobík Profil |
#9 · Zasláno: 22. 8. 2008, 09:45:54
nightfish
To je ono : Už mi to skoro funguje ale potřeboval bych aby název tabulky byl stejný jako proměná $adresa Když to napíši takto : mysql_query("CREATE TABLE $adresa(odesilatel varchar(50),predmet varchar(15),text varchar(999999))"); tak mi to píše A table must have at least 1 column Jak tam mám dosadit proměnou?? |
||
Měsíček Profil |
#10 · Zasláno: 22. 8. 2008, 09:47:10 · Upravil/a: Měsíček
'.$proměnná.' .. i když fungovat by to mělo i tak jen tam udělej mezeru.
|
||
Jobík Profil |
#11 · Zasláno: 22. 8. 2008, 09:49:47 · Upravil/a: Jobík
Měsíček
Teď mi to zase píše : 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 ''.m#ipost.cz.' (odesilatel varchar(50),predmet varchar(15),text |
||
Měsíček Profil |
#12 · Zasláno: 22. 8. 2008, 09:53:46 · Upravil/a: Měsíček
a ještě takový detail .. co obsahuje $adresa (kde ji naplňuješ obsahem), protože jak to tak vypadá je prázdná.
// EDIT: já si asi vrazím :( |
||
nightfish Profil |
#13 · Zasláno: 22. 8. 2008, 09:54:23
Jobík
to, že maximální délka varcharu je 255, resp. 65535 jsem nepsal ze srandy jinak sloupce, které se jmenují stejně, jako nějaký datový typ, musíš uzavřít do zpětných apostrofů - ve tvém případě `text` |
||
Jobík Profil |
#14 · Zasláno: 22. 8. 2008, 09:58:40 · Upravil/a: Jobík
Měsíček
proměnná $adresa je value jednoho inputu nightfish „inak sloupce, které se jmenují stejně, jako nějaký datový typ, musíš uzavřít do zpětných apostrofů - ve tvém případě `text`“ Tahle to mám ale stejně to nejde : mysql_query("CREATE TABLE '.$adresa.' (odesilatel varchar(50),predmet varchar(15),`text` varchar(255))"); |
||
nightfish Profil |
#15 · Zasláno: 22. 8. 2008, 10:02:24
„proměnná $adresa je value jednoho inputu “
máš zapnuté register_globals nebo tam máš něco na způsob $adresa = $_POST['adresa']; ? zkusil sis před dotazem vypsat obsah té proměnné? |
||
Jobík Profil |
#16 · Zasláno: 22. 8. 2008, 10:05:54
nightfish
„kusil sis před dotazem vypsat obsah té proměnné?“ Vypsal sem si je to v pořádku „$adresa = $_POST['adresa']; ? “ To tam nemám. Když napíši do mysql_query("CREATE TABLE '.$adresa.' (odesilatel varchar(50),predmet varchar(15),`text` varchar(255))"); a místo té proměné dám pokus mysql_query("CREATE TABLE pokus (odesilatel varchar(50),predmet varchar(15),`text` varchar(255))"); tak se mi normálně tabulka vytvoří, ale s proměnou to vypíše chybu 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 ''.b#ipost.cz.' (odesilatel varchar(50),predmet varchar(15),`text |
||
Měsíček Profil |
#17 · Zasláno: 22. 8. 2008, 10:07:35
mysql_query("CREATE TABLE '.$_POST["adresa"].' (odesilatel varchar(50), predmet varchar(15), `text` varchar(255))");
|
||
nightfish Profil |
#18 · Zasláno: 22. 8. 2008, 10:07:46
„tak se mi normálně tabulka vytvoří, ale s proměnou to vypíše chybu “
z čehož plyne, že proměnný $adresa neobsahuje platný název tabulky ve tvém případě zřejmě obsahuje b#ipost.cz mimochodem „mysql_query("CREATE TABLE '.$adresa.' (odesilatel varcha“ je blbě... má to být "CREATE TABLE `".$adresa."` (odesilatel ... |
||
Jobík Profil |
#19 · Zasláno: 22. 8. 2008, 10:10:35
když to dám takto :
mysql_query("CREATE TABLE `".$adresa."` (odesilatel varchar(50),predmet varchar(15),`text` varchar(255))"); Vypíše to zase : b#ipost.czIncorrect table name 'b#ipost.cz' |
||
nightfish Profil |
#20 · Zasláno: 22. 8. 2008, 10:12:07
Jobík
chápu, že jsi zřejmě pomalejší, nebo ti dělá problém číst celé příspěvky... proto ti sem ještě jednou zkopíruji část svého příspěvku z 10:07:46 „z čehož plyne, že proměnný $adresa neobsahuje platný název tabulky “ (což mimochodem potvrzuje i ta chybová hláška) co s tím? zadej platné jméno tabulky (pro začátek jenom písmena a-z a A-Z, případně podtržítko _) |
||
Jobík Profil |
#21 · Zasláno: 22. 8. 2008, 10:16:39
nightfish
A nedado bys se nějak udělat aby tam mohlo být b#ipost.cz nebo se to opravdu vůbec nedá??? Jinak už mi to funguje všem moc děkuji |
||
nightfish Profil |
#22 · Zasláno: 22. 8. 2008, 10:18:07
„A nedado bys se nějak udělat aby tam mohlo být b#ipost.cz nebo se to opravdu vůbec nedá??? “
ne, nedá (programátoři v mySQL mají zřejmě dobrý důvod, proč to tak udělali) |
||
koudi Profil |
#23 · Zasláno: 22. 8. 2008, 10:24:21
Jobík
Je tady ještě jedna věc, která mě hrozně zajímá: proč celé toto vlastně chceš? Osobně mám pocit, že to je naprosto k ničemu a když se podívám na strkturu té tabulky, tak mám spíš pocit, že než tabulku bys měl vytvořit spíš nový řádek .... |
||
Jobík Profil |
#24 · Zasláno: 22. 8. 2008, 10:25:43 · Upravil/a: Jobík
A ještě jedna maličkost abych nemusel zakládat nové téma.
Mám registraci, ale je udělalaná že pokud všechny údaje sedí tak se přihlásím na stránku ale já bych potřeboval aby pokud se vše splní a já se přihlásím aby mně to přesměrovalo na jinou stránku. Prostě na index.pnp se přihlásím a ono mně to pošle na prohlasen.php ale aby se na prihlasen nedalo dos¨tat bez zadaní helse Scritp je zde |
||
Jobík Profil |
#25 · Zasláno: 22. 8. 2008, 10:26:35
koudi
Význam to má |
||
koudi Profil |
#26 · Zasláno: 22. 8. 2008, 19:49:05
Jobík
Tak se zkusím zeptat znovu: jaký? Přesměrování udělej pomocí header(). V přihlášen si dej podmínku, jestli je daný člověk skutečně přihlášen (můžes si to ukládat třeba do session). |
||
Časová prodleva: 29 dní
|
|||
JosefP Profil * |
#27 · Zasláno: 20. 9. 2008, 23:38:36
Proměnné dodávám z formuláře. Funguje to jako příklad...
<?php $spojeni = mysql_connect('localhost', 'root', ''); if (!$spojeni) { die('K mysql serveru se nelze připojit: ' . mysql_error()); } $db = $_POST['db']; $tb = $_POST['tabulka']; $sloupec1 = $_POST['sloupec1']; $sloupec2 = $_POST['sloupec2']; $sloupec3 = $_POST['sloupec3']; mysql_select_db($db, $spojeni); mysql_query("CREATE TABLE $tb($sloupec1 varchar(50),$sloupec2 varchar(15),$sloupec3 varchar(99))"); mysql_close($spojeni); echo "<span style=\"color: green\">OK: Tabulka a sloupce vytvořeny.</span><br />"; echo "<br /><a href=\"index.html\">Návrat zpět</a>"; ?> |
||
Časová prodleva: 16 let
|
0