Autor Zpráva
Kazivalek
Profil *
ahoj vsichni, potrebuju poradit s logikou jednoho skriptu!
mam tabulku generovanou PHPkem ktera je naplnena nejakymi hodnotami, cela tabulka je uzavrena ve <FORM> a ma odesilci tlacitko a u kazdeho radku je CHECKBOX. zaskrtnutim a odeslanim vyberu prislusne radky mohu editovat.
bunky v tabulce ktere jsou prazdne pomoci ODESLAT mohu editovat doplnenim INPUT do bunky, stejne tak i bunky s hodnotami.
otazka je jakym zpusobem nejjednoduseji rozpoznan jiz vyplnene bunky pro pouziti UPDATE MySQL a INSERT INTO pro editaci drive prazdnych bunek.
tabulka je dost velka. pokud je radek tabulky prazdny musi byt INSERT INTO a pokud je jiz nejaky obsah tak UPDATE.
me napada asi jen pri odesilani ukladat do pole obsah a pak pole protridit podle obsahu a porovnat s editovanymi daty, nakonec rozdelit do dvou poli pro UPDATE a INSERT
snad to je pochopitelne, samozrejme provazanosti je mnohem vice....
mckay
Profil
Kazivalek:
Piš prosím s diakritikou, tvůj projev je špatně srozumitelný a pochopitelné to není.

Prázdný řádek? To je vůbec možné? (V databázi). Z tebou popsaného textu se mi do sebe míchá tabulka v databázi a tabulka v html, chtělo by to od sebe nějak odlišit. ;-)
Kazivalek
Profil *
mckay:
vygeneruji tabulku do které dosadím data z databáze. některé řádky mohou být prázdné! součástí tabulky jsou i checkboxy u každého řádku. při zaškrtnutí se určí řádek pro editaci. po odeslání např zaškrtnutí jednoho prázdného a druhého doplněného řádku z DB se v buňkách ukáže INPUT s hodnotami. já tyto hodnoty přepíšu a chci tu kde byla buňka prázdná vložit do DB a tu která již obsahovala hodnotu chci v DB UPDATE
je to lepší?
mckay
Profil
Kazivalek:
Po češtinářské stránce ano, ale stále mi nějak uniká smysl, začal jsi už něco dělat, nebo zatím jen zvažuješ.

Jestli je to tak jak si myslím, je možné, že potřebuješ vědět něco o funkci
empty();

aby si zkontroloval jestli odeslané políčko je prázdné. Možná by ti také pomohlo si to nakreslit.
Kazivalek
Profil *
mam hotovy SELECT Z DB a generovani tabulky. znám funkci emty() a jde mi jen o princip, jak provádět při jednom odeslání dvě různé věci UPDATE a INSERT, jestli mám pole $_REQUEST s hodnotami buněk přepsat do nového pole a po editaci vytvořit další pole z REQUESTu, tyto dvě pole porovnat a pak vytvořit dvě další pro UPDATE a INSERT.
zkus Odkaz
nevím jestli bude fungovat, mám nový modem a Win7, ještě jsem to nezkoušel. pak to možná pochopíš. jde mi jen o logiku
Alphard
Profil
Za určitých podmínek by mohlo pomoci replace, viz MySQL (16) - Tipy a triky k manipulaci s daty - Linux Software.
Pokud se nehodí, budete to asi muset řešit na úrovni PHP. Existující řádky by měly mít nějaké id, neexistující samozřejmě ne, na jeho základě roztřídíte, co se bude vkládat a co přepisovat.
mckay
Profil
Kazivalek:
Aha, já se odpoledne divil, proč to nic nedělá, a to je tvůj localhost :-)
Kazivalek
Profil *
mckay:
uz funguje nakonec pres proxy jsem to rozchodil
Kazivalek
Profil *
Alphard:
to nezní vůbec špatně, díky za typ, zkusím nad tím přemýšlet, tohle by mohlo byt mnohem jednodušší než-li to nad čím jsem já přemýšlel.
tatyalien
Profil
V nejhorším si do tabulky hodtě input s id s možností jen read (at to nemůže uživatel měnit), když bude vyplněné, je to na update, pokud ne, insert ;)
Kazivalek
Profil *
tatyalien:
V nejhorším si do tabulky hodtě input s id s možností jen read (at to nemůže uživatel měnit), když bude vyplněné, je to na update, pokud ne, insert ;)
tohle mi moc nejde do hlavy, jak to myslis?
Taps
Profil
Kazivalek:
http://diskuse.jakpsatweb.cz/?action=vthread&forum=28&topic=103436&page=0#4
tatyalien
Profil
Kazivalek
Psal jsi, že si generuješ tu tabulku s input boxema kam zadáváš data a vypisuješ hodnoty z db. Tak si z db vytáhni i "ID" řádku a ten si zobraz v tabulce pomocí inputu.
<input name='ID'  value='".$_POST_["id"]."' readonly>

Takže pak si je projedeš data a tam kde nebude vyplněné ID, tak se jedná o věc, kterou ještě nemáš uloženou v DB = insert, pokud tam je ID = update.
Kazivalek
Profil *
tatyalien:
díky, myšlenka dobrá, ale myslím že to mohu i třídit rovnou do pole, protože $_REQUEST .... a pak bych to jen FOREACHem prošel a zjistil jaká je změna oproti SELECT DB.
po označení řádku v tabulce pro editaci změním hodnoty a pak po odeslání porovnám se SELECT, roztřídím do pole[update] a pole[insert] a pro komunikaci používám třídu a pro editaci mám alespoň nachystaná pole.
readonly je zbytečný, edituji jen označené řádky checkboxem
ted jsem tvořil nějakou funkci na doplnění státních svátku, konečně jede jak má, nyní se vrhnu na tu samotnou editaci. kdyby mi tu pořád mé dítě nepřepisovalo skript, možná bych to už měl, jek je pro něj jednoduché něco změnit aby to nešlo!!!
¦-)
Kazivalek
Profil *
vlastně už při SELECT když je zvolen řádek-řádky pro editaci, mohu již zjistit které se editují a které budo vloženy nové. jen se pak bude muset ještě kontrolovat jsetli se opavdu zmenily, nebo prázdný zůstal prázdný....

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: