Autor Zpráva
Jobík
Profil
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
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
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
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
Neznáš nějaký web
http://linuxsoft.cz/php - díly 34 až 42
Alphard
Profil
http://www.linuxsoft.cz/article.php?id_article=336

// nightfish: ptal se mě :-)
Jobík
Profil
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
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
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
'.$proměnná.' .. i když fungovat by to mělo i tak jen tam udělej mezeru.
Jobík
Profil
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
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
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
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
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
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
mysql_query("CREATE TABLE '.$_POST["adresa"].' (odesilatel varchar(50), predmet varchar(15), `text` varchar(255))");
nightfish
Profil
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
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
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
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
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
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
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
koudi
Význam to má
koudi
Profil
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).
JosefP
Profil *
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>";
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0