Autor | Zpráva | ||
---|---|---|---|
ra100 Profil * |
#1 · Zasláno: 9. 2. 2011, 21:44:08
Zdravim,
mam dve stránky. Formulár a ďaľšiu stránku, ktorá zpracováva prijaté data cez $_POST. Formulárový prvok input ma meno="abcd" a ukladá jedno pismeno abecedy v rozmedzy a-z; V druhom formulári sa spracuje input pomocou $abc = $_POST['abcd']; Pri vkladani dat do mysql pomocou "INSERT INTO $abc(...,.......)" nemam problem z vlozenim. Problem nastava pri sql prikaze "SELECT * FROM $abc" Nechápem, ako jedna a tá istá premenná $abc v jednom prípade funguje a v druhom nie.... |
||
xmark Profil |
#2 · Zasláno: 9. 2. 2011, 21:48:55
Životnost php proměnných končí doběhnutím php skriptu, tzn. chvilku před tím, než se ti stránka stáhne do prohlížeče. Nevím, proč chceš uchovávat název tabulky v proměnné, ale fungovat ti to nebude, pokud ten SELECT je v jiném souboru, než INSERT.
A tak nějak celkově.. tu konstrukci nechápu a myslím že bude dost zmatená a chybná. |
||
ra100 Profil * |
#3 · Zasláno: 9. 2. 2011, 21:59:07
xmark
Prvok input "abcd" predava jedno pismeno abecedy, ktore sa uchováva v premennej $abc. na základe zadaného abecedného pismena su vložené data do prislušnej tabulky v databaze. Teda, ak bude zadaná hodnota v $abc = 'f'; , data z formularu sa vložia do tabulky z názvom 'f' - INSERT INTO $abc... no prikaz SELECT * FROM $abc v tom istom dokumente nefunguje. ak ti to pomoze, poslem ti kod. dakujem |
||
snake.aas Profil * |
#4 · Zasláno: 9. 2. 2011, 22:03:00
tak ten kód prskni tady, ne?
|
||
xmark Profil |
#5 · Zasláno: 9. 2. 2011, 22:04:32
ra100:
„Teda, ak bude zadaná hodnota v $abc = 'f'; , data z formularu sa vložia do tabulky z názvom 'f' - INSERT INTO $abc...“ Ano, to je přesně to, co jsem označil za chybnou konstrukci. Nicméně, jestli v $abc máš něco, použiješ to v tom insertu a na té samé stránce později v selectu, tak by to fungovat mělo. Vypiš si přesný obsah těch dvou dotazů, ověř si, jestli se ten INSERT provede. |
||
ra100 Profil * |
#6 · Zasláno: 9. 2. 2011, 22:07:36
tu je zjednodušený kód "
----- Prvy dokument ----- <form name="kniha" action="dokument2.php" method="post"> <b>Zadaj abecedne pismeno : </b> <input name="abcd" size="2" maxlength="1"><br /><br /> <b>Názov : </b><br /> <input name="nazov" size="80"><br /> <br /> <input type="submit" value=" Odošli " name="bot"> </form> -----Druhy dokument2 ----- $abc = $_POST['abcd']; if (isset($_POST['bot'])) $sql_prikaz = "INSERT INTO $abc(nazov,.......) " ."VALUES('" .mysqli_real_escape_string($db_spojenie,$_POST['nazov']) ."')" ; $sql = "SELECT * FROM $abc"; $objekt = mysqli_query($db_spojenie,$sql ); |
||
ra100 Profil * |
#7 · Zasláno: 9. 2. 2011, 22:11:44
xmark:
INSERT funguje v pohode. no nie SELECT to nechapem |
||
xmark Profil |
#8 · Zasláno: 9. 2. 2011, 22:15:36
ra100:
A já nechápem, co si slibuješ od tohoto: $sql = "SELECT * FROM $abc"; $objekt = mysqli_query($db_spojenie,$sql ); Syntaxi mysqli neznám, takže nevím, jestli tam to $db_spojenie patří, ale nikde nevidím, že bys tam do nějaké konkrétní proměnné vytahoval konkrétní hodnotu z databáze. A ještě k INSERTu: když tam vypíšeš sloupce, do kterých vkládáš hodnoty, ruka ti neupadne a eliminuješ tak spoustu možných chyb, které můžou nastat při změně ve struktuře tabulky. Nehledě na to, že je to prostě i v tom výpisu přehlednější a víš co kam jde. |
||
snake.aas Profil * |
#9 · Zasláno: 9. 2. 2011, 22:23:46
xmark:
to $db_spojenie tam patří. ra100: jestli ten kód není až moc zjednodušený, tak nemáš sql příkaz pro vložení řádku mysqli_query($db_spojenie, $sql_prikaz) za if (isset($_POST['bot'])) - neměl by tam být náhodou blok? jestli to tam v kódu, máš, tak pardon, ale tady z toho to není vidět.. |
||
ra100 Profil * |
#10 · Zasláno: 9. 2. 2011, 22:27:14
xmark:
$db_spojenie je uz preddefinovaná premenná. V každom prípade ďakujem všetkým za ochotu pomoct mi. Neviem, ako som to opravil , no ono sa to rozbehlo a konečne to funguje ;) ďakujem |
||
ra100 Profil * |
#11 · Zasláno: 9. 2. 2011, 22:29:55
snake.aas:
dakujem snake....ono sa to rozbehlo a už to pracuje. |
||
Časová prodleva: 13 let
|
0