Autor | Zpráva | ||
---|---|---|---|
Zoric Profil * |
#1 · Zasláno: 7. 6. 2006, 16:07:30
ahoj, potrebuji poradit, jak na zapis do vice tabulek DB soucastne, ale pozor tabulky se lisi sloupci, co je pro tyto tabulky spolecne, tak je id nic vice. Nize je uvedeny kod pro zapis pouze do jedne tabulky, ale ja potrebuji do vice, predem dekuji za pomoc. Mirek
<? if (isset($_GET["id"])) { array_walk($set, create_function('&$val, $key', '$val = "$key = $val";')); $result = mysql_query("UPDATE udaje SET " . implode(", ", $set) . " WHERE ID = '$_REQUEST[id]'") or die(mysql_error()); } else { $result = mysql_query("INSERT INTO udaje (" . implode(", ", array_keys($set)) . ") VALUES (" . implode(", ", $set) . ")") or die(mysql_error()); } ?> |
||
Časová prodleva: 8 dní
|
|||
Honza Široký Profil |
#2 · Zasláno: 15. 6. 2006, 23:54:20
Řešením jsou transakce: http://dev.mysql.com/doc/refman/5.0/en/transactional-commands.html
Ale stejně si myslim, že to nebude potřeba, protože dost webových aplikací se bez nich obejde. To bych potřeboval vědět, co to má přesně dělat. |
||
Hugo Profil |
#3 · Zasláno: 16. 6. 2006, 00:22:21
Zoric
A nestačí ti prostě použít několik insertů po sobě? |
||
Robin.P. Profil * |
#4 · Zasláno: 17. 6. 2006, 23:05:26
Honza Široký
No potreboval bych pouze php script, ktery z jednoho formulare zapise ruzna data do vice odlisnych tabulek v jedne databazi. Proste potrebuji nejake voditko, ktereho bych se chytnul a tim padem se vyvaroval klasickym INSERTům. |
||
koudi Profil |
#5 · Zasláno: 17. 6. 2006, 23:09:07
Robin.P.
Oni jsou i 'neklasické' INSERTY? :) |
||
Robin.P. Profil * |
#6 · Zasláno: 17. 6. 2006, 23:10:15
Hugo
No to staci, ale ne klasickych, proste potrebuji takove INSERTy, jaky je INSERT zde uvedeny. |
||
Robin.P. Profil * |
#7 · Zasláno: 17. 6. 2006, 23:11:42
koudi
No a takove prave potrebuji :o) Nevis nahodou o nejakem, potrebuji voditko? |
||
koudi Profil |
#8 · Zasláno: 17. 6. 2006, 23:12:55
Robin.P.
Je mi líto, ale jediný způsob zápisu dat do databáze co znám, je INSERT :) |
||
Robin.P. Profil * |
#9 · Zasláno: 17. 6. 2006, 23:17:41
koudi
To ja prece vim, ze je INSERT, SELECT, UPDATE, ale ja potrebuji mit v jednom formulari 3x INSERT, ktery bude uklidat data do tri ruznych tabulek v db a potrebuji poradit od zkusenejsich, jak na to, protoze se chci vyhnout klasickemu zapisu, protoze v nemem musi byt presny v poradi tak, jak v db. |
||
Hugo Profil |
#10 · Zasláno: 17. 6. 2006, 23:36:29
Robin.P.
Z toho co tady píšeš vůbec nechápu o co ti jde. Je problém dát ten insert třikrát (pokaždé bude zapisovat do jiné tab.)? Pokud ano, tak proč? |
||
Robin.P. Profil * |
#11 · Zasláno: 18. 6. 2006, 00:28:50
Hugo
Je problém dát ten insert třikrát (pokaždé bude zapisovat do jiné tab.)? Ano kazdy INSERT bude zapisovat odlisna data do odlisne tabulky v db. Napr. name, password do tabulky 'hesla', jmeno, prijmeni atd do tabulky 'uzivatele' .................................. Co by melo byt spolecne pro vsechny tabulky, tak je pouze 'id' Pokud ano, tak proč? Aby jsem v tom mel poradek :o) |
||
Hugo Profil |
#12 · Zasláno: 18. 6. 2006, 00:33:36 · Upravil/a: Hugo
Aha, takže ty chceš jedním insertem zapsat data do tří tabulek s různou strukturou najednou. Tak to (alepoň pokud vím) nejde.
IMHO je tady nejrozumnější řešení použít tři inserty (alespoň pro MySQL). |
||
koudi Profil |
#13 · Zasláno: 18. 6. 2006, 00:36:26
data do tří tabulek s různou strukturou najednou
Hugo má imho pravdu - tady bych to viděl na tři různý inserty. |
||
Robin.P. Profil * |
#14 · Zasláno: 18. 6. 2006, 00:45:17
Hugo
Aha, takže ty chceš jedním insertem zapsat data do tří tabulek s různou strukturou najednou. Tak to (alepoň pokud vím) nejde. Spatne jsi to pochopil, chci nasledujici: $result = mysql_query("INSERT INTOhesla (" . implode(", ", array_keys($set)) . ") VALUES (" . implode(", ", $set) . ")") or die(mysql_error()); $result = mysql_query("INSERT INTOuzivatele (" . implode(", ", array_keys($set)) . ") VALUES (" . implode(", ", $set) . ")") or die(mysql_error()); . . . . A pokud mam promenou $set["login"] = "'$_POST[login]'"; tak me to ohlasi chybu, ze sloupec 'login' neni v tabulce 'uzivatele' . |
||
Hugo Profil |
#15 · Zasláno: 18. 6. 2006, 00:54:18
Jediné co mě napadá je napsat funkci, která proleze to pole a vybere pouze ty prvky, které do dané tabulky patří.
|
||
Robin.P. Profil * |
#16 · Zasláno: 18. 6. 2006, 01:01:14
Hugo
A nebyl by prosim nejaky priklad te funkce, aby to pochopil? |
||
Hugo Profil |
#17 · Zasláno: 18. 6. 2006, 01:04:53
Psát se mi to nechce, ale princip může být ten, že si vytáhneš strukturu tabulky, z ní vezmeš názvy sloupců a pak jen vybereš ty prvky pole, které potřebuješ.
|
||
Robin.P. Profil * |
#18 · Zasláno: 18. 6. 2006, 01:09:12
Hugo
Dobre, pokusim se to tedy napsat sam. A jinak diky. |
||
tiso Profil |
#19 · Zasláno: 18. 6. 2006, 11:44:45
Robin.P.
...podľa toho čo si tu napísal to máš strašne divoké... Vráť sa na začiatok a povedz si: 1. čo vlastne chceš od návštevníka, 2. sprav si formulár, 3. ošetrenie vstupných premenných 4. nakoniec ukladanie do databázy... A keď niečo z toho nebudeš vedieť tak tu uveď všetky tie predchádzajúce kroky, aby si nebol v obraze len ty a ostatný museli hádať... |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0