Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] update tabeli na bazie textarea
Forum PHP.pl > Forum > Przedszkole
dem
jestem w fazie projektowania jednego z modulow do mojego panlu administracji (w glowie) i nasuwa mi sie pytanie ktore przedstawie na koniec posta...

najpierw, co chce zrobic:

planuje zrobic jeden modul(subskrypt), ktory bedzie korzystal z roznych tabel... bedze to dotyczylo takich rzeczy jak: spis klanow, menu, spis artykulow etc

jak to ma dzialac?

po wybraniu tabeli do edycji (np. menu)
na stronie pojawi sie:

input, w ktorym bedzie "metoda" wyswietlania danych(przy tworzeniu danego modulu bedzie trzeba ja podac, a potem bedzie mozliwosc edycji- to ma robic za "szablon" dla skryptu wyswietlajacego dane z tabeli) , czyli np:
  1. <tr><td>{slowo_klucz_1}</td><td>{slowo_klucz_2}</td> ... <td>{slowo_klucz_n}</td></tr>


a pod spodem textarea gdzie beda dane odzielane np. za pomoca ";" np:

  1. Aktualnosci;id_skryptu;_self;class dla linka
  2. Administracja;id_skryptu;_self;class dla linka
  3. Forum;id_skryptu;_blank;class dla linka


gdzie kazdy wpis pomiedzy srednikami bedzie stanowil kolejne {slowo_klucz_numer}

dlaczego akurat tak chce to zrobic? wynika to z tego ze kiedys pracowalem na metodzie: osobny wpis to kolejny ciag wyswietlonych inputow z odpowiednimi wartosciami z tabeli (np:)

  1. input: nazwa klanu, input: adres, ... , input inne informacje
  2. input: nazwa klanu, input: adres, ... , input inne informacje
  3. input: nazwa klanu, input: adres, ... , input inne informacje


z wlasnego lenistwa nie chce mi sie robic przy tym nowym panelu administracyjnym skryptu do usuwania danych inputow (czyli wersow z tabeli msql), edycji ich (pole checkbox obok, ktore determinowaly, ktore inputy mialy byc zaktualizowane w tabeli), recznego sortowania: gora/dol. W momencie gdy zastosuje jeden input z metoda wyswietlania i pole textarea (do ktorego przewiduje maximum po 30 wpisow) z danymi do wyswietlania, znika problem "obrobki" osobnych inputow. Wystraczy ze zamienie recznie kolejnosc lini, lub usune jedna linia albo cokolwiek innego.

No i to juz jest koniec posta i nasuwa sie moje pytanie:

W momencie gdy bede chcial wprowadzic tę metode (input+textarea) pojawi sie problem z aktualizacja danych w bazie. Chodzi o to, ze przy zapisywaniu zmienionych danych, nie bede wiedzial, ktora linia miala docelowe, pierwotne(przed wyciagnieciem danych z tabeli) id w tablicy. czyli, ze nie bede wstanie kontrolowac jak zmieniaja sie dane w tablicy. Czy, jesli przewieduje ta metode tylko dla siebie i redaktorow oplaca sie wyzerowac tablice i zapisac ją na nowo kolejnymi liniami z textarea? a moze macie inny pomysl jak sobie z tym poradzic?

wiem ze dlugi post, ale chcialem to calkiem w miare dobrze opisac i mam nadzieje ze rozumiecie ocb..mam nadzieje, ze dacie rade mi jakos pomoc..

pozdrawiam
SongoQ
Na prosbe @dem poprawilem temat i odblokowalem
dem
ach ci moderatorzy biggrin.gif dzieki;]

zapomnialem dodac, ze nie zalezy mi na tym, aby zrobic to na plikach(pomimo tego ze byloby latwiej i szybciej), bo chcialbym miec mozliwosc tworzenia wszystkich potrzebnych danych wrazie awarii/przenosin na inny server/etc
Neojawor
jeśli nie chcesz gubić id, to też go wyświetlaj w tym textarea i po sprawie. Problem w tym, że będzie to bardzo niewygodne dla osób korzystających z tego dziwnego formularza, tak więc najpierw się zastanów komu się bardziej nie będzie chciało: Tobie-koderowi, czy użytkownikom. Pamiętaj, że jeśli ktoś przez pomyłkę usunie którykolwiek średnik, to rozwali Ci wszystkie dane. Wg mnie jest to kiepski pomysł, bo mało odporny na złośliwość, lenistwo i głupotę użytkowników, a na dodatek dane będą bardzo nieczytelne dla użytkownika.
dem
Cytat(Neojawor @ 16.03.2007, 14:41:23 ) *
jeśli nie chcesz gubić id, to też go wyświetlaj w tym textarea i po sprawie.


nie wiem jak sobie wyobrazasz dodawanie nowej lini, chociaz to tez ma w pewnym stopniu sens... nie musisz na ten komentarz odpowiadac, bo nad tym akurat pomysle sam.. bede mial dywagacje wg. tego to dam znac...

Cytat(Neojawor @ 16.03.2007, 14:41:23 ) *
Problem w tym, że będzie to bardzo niewygodne dla osób korzystających z tego dziwnego formularza, tak więc najpierw się zastanów komu się bardziej nie będzie chciało: Tobie-koderowi, czy użytkownikom.

nie jest on dziwny... byc moze nie czytales calego mojego posta i nie zrozumiales istoty tego "dziwnego" formularza... pozatym napisalem:
Cytat
Czy, jesli przewieduje ta metode tylko dla siebie i redaktorow


Cytat(Neojawor @ 16.03.2007, 14:41:23 ) *
Pamiętaj, że jeśli ktoś przez pomyłkę usunie którykolwiek średnik, to rozwali Ci wszystkie dane.

heh... jak juz powiedzialem, to do tego modulu beda mieli dostep redaktorzy i ja, wiec o takich pomylkach nie ma mowy... a nawet jesli... to co za problem poprawic dwoma kliknieciami? ;]

Cytat(Neojawor @ 16.03.2007, 14:41:23 ) *
Wg mnie jest to kiepski pomysł, bo mało odporny na złośliwość, lenistwo i głupotę użytkowników, a na dodatek dane będą bardzo nieczytelne dla użytkownika.


wg. mnie jednak nie przeczytales calego posta... jak juz napisalem wyzej i w poscie, to ten modul ma byc dla zarzadzajacych strona a nie dla odwiedzajacych...

a dlaczego mialo to by nie byc czytelne?

jednak nie odpowiedziales na moje docelowe pytanie...
Neojawor
Cytat
heh... jak juz powiedzialem, to do tego modulu beda mieli dostep redaktorzy i ja, wiec o takich pomylkach nie ma mowy... a nawet jesli... to co za problem poprawic dwoma kliknieciami? ;]

jak często udaje Ci się napisać jakiś kod bez zgubienia masy średników, nawiasów itd.? - nikt nie jest nieomylny

Łapię już Twoją filozofię i faktycznie może to być wygodniejsze do edycji.

Cytat
Czy, jesli przewieduje ta metode tylko dla siebie i redaktorow oplaca sie wyzerowac tablice i zapisac ją na nowo kolejnymi liniami z textarea? a moze macie inny pomysl jak sobie z tym poradzic?

jeśli masz kożystać z tego jednosześnie do edycji i dodawania rekordów, to żeby nie musieć przepisywać tabeli na nowo, musiałbyś sprawdzać każdy rekord z osobna, czy istnieje już taki w bazie i jeśli tak, to go edytujesz, jeśli nie to dodajesz.
Jest jeszcze inna możliwość, ale z pewnymi warunkami:
1) nie możesz z tego formularza usówać rekordów
2) dodajesz rekordy tylko na końcu, nie wsadzasz żadnych w środek między istniejące
W takim przypadku sumujesz ilość rekordów w bazie i ilość rekordów pobranych z formularza i jeśli ta druga jest większa, to znaczy, że jest x rekordów do dodania, gdzie x=il_rekordow_z_form - il_rekordow_w_bazie
resztę i tak musisz przepuścić przez update, bo przecież nie wiesz które edytowałeś, a które pozostawiłeś bez zmian.
dem
Cytat(Neojawor @ 16.03.2007, 15:06:09 ) *
jak często udaje Ci się napisać jakiś kod bez zgubienia masy średników, nawiasów itd.? - nikt nie jest nieomylny


powiem szczerze, ze czepiasz sie szczegolow :E jesli dam komus odpowiednia flaga uprawniajaca go do zarzadzania takim modulem to wymagam od niego, ze potrafi czytac text nad formularzem

Cytat
kolejne informacje odzielamy srednikami ";"


;]
Cytat(Neojawor @ 16.03.2007, 15:06:09 ) *
jeśli masz kożystać z tego jednosześnie do edycji i dodawania rekordów, to żeby nie musieć przepisywać tabeli na nowo, musiałbyś sprawdzać każdy rekord z osobna, czy istnieje już taki w bazie i jeśli tak, to go edytujesz, jeśli nie to dodajesz.

wydaje mi sie ze to bedzie duzo dluzej trwalo niz wyzerowanie tablicy i wpisania na nowo rekordow... w tym rozwiazaniu, musialbym kazda kolejna linia porownywac z innymi. Nawet jesli ta liczba lini by sie zmniejszala do sprawdzenie to i tak jedna linia bedzie musiala byc porownana z n rekordami...

Cytat(Neojawor @ 16.03.2007, 15:06:09 ) *
Jest jeszcze inna możliwość, ale z pewnymi warunkami:
1) nie możesz z tego formularza usówać rekordów
2) dodajesz rekordy tylko na końcu, nie wsadzasz żadnych w środek między istniejące
W takim przypadku sumujesz ilość rekordów w bazie i ilość rekordów pobranych z formularza i jeśli ta druga jest większa, to znaczy, że jest x rekordów do dodania, gdzie x=il_rekordow_z_form - il_rekordow_w_bazie
resztę i tak musisz przepuścić przez update, bo przecież nie wiesz które edytowałeś, a które pozostawiłeś bez zmian.


chyba jednak z tego nie skorzystam(warunek nr 1) ;]
jak wpadniesz na inny pomysl to pisz. Moze ktos inny jest jeszczze wstanie cos napisac?
Neojawor
całkowicie się z Tobą zgadzam, że trwało by to dłużej. Jakby na to nie patrzeć pozostaje Ci chyba tylko wypełnianie tabeli na nowo.

pozdrawiam
dem
nie wieze ze nikt inny nie moze sie tu wypowiedziec... ;/

asd moderatorzy mnie olewaja...

no niech ktos cos poradzi...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.