Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL]Dodawanie, usuwanie, modyfikowanie rekordów
Forum PHP.pl > Forum > PHP
Fluke
Witam,

Mam taki problem, do którego nie mogę wymyślić rozwiązania.
Mam np. tabelę: "pages", "categories", "pages_categories". I na stronie wyświetlam np. 5 kategorii do danej strony(lista). Teraz chciałbym zrobić coś takiego, że mogę usunąć daną kategorię, dodać bądź zmodyfikować i to w jednym czasie. Potem wysyłam formularz i tych kategorii danej strony, których nie ma mają zostać usunięte z tabeli: "pages_categories".

Korzystam z Doctrine 2 i może jest tam takie rozwiązanie ale nie widziałem, więc może Ci bardziej wtajemniczeni coś wiedzą o tym.

Do tej pory robiłem tak:
1) Usuwałem wszystkie kategorie gdzie page_id = $page
2) Dodawałem te kategorie które zostały wcześniej dodane.

Moje rozwiązanie nie wydaje mi się zbyt optymalne i ładne, więc proszę o jakieś wasze rozwiązania bądź propozycje.

Z góry dzięki
Pozdrawiam.
b4rt3kk
Nie do końca rozumiem o co chodzi, ale jednocześnie nie możesz jednym zapytaniem usuwać, edytować i dodawać rekordów. Trzeba to rozbić na poszczególne akcje.

Możesz to jakoś jaśniej napisać? Lub jakieś przykłady podać?
Fluke
Mamy na stronie 5 kategorii:
-komiksy
-programowanie
-kulinaria
-herbata
-laptopy

i teraz user-case wygląda tak:

1) Usuwamy kategorie: komiksy, herbata
2) Dodajemy NOWĄ kategorię - komputery
3) Modyfikujemy kulinaria na kuchnia domowa
4) Akceptujemy formularz(wysyłamy POST)

I teraz jak ładnie to zrobić aby nie usuwać wszystkich rekordów i wstawić nowe z POST ?

@b4rt3kk
Wiem że nie da się to zrobić 1 zapytaniem tongue.gif
b4rt3kk
To jeszcze zależy jak formularz w sumie wygląda. Modyfikujesz pola za pomocą JS lub jQuery? Rzeczywiście, nie ma sensu usuwania wszystkich kategorii i wstawiania ich od nowa. Musisz rozpoznać jakie akcje wykonał użytkownik, tj. zaznaczony checkbox przy kategorii oznacza usuń, itp. a jako value dajesz id rekordu. Więc:

1. Usuwasz kategorie z zaznaczonymi checkboxami (rozpoznajesz po id).
2. Edytujesz wszystkie pozostałe kategorie, które nie zostały usunęte (nie ma sensu sprawdzać, czy wprowadzono jakieś zmiany, bo to kolejne zapytanie).
3. Dodajesz nowe rekordy (to te, które nie będą miały określonego swojego id).
Fluke
W sumie jest to chyba najlepsze rozwiązanie ze wszystkich jakie słyszałem... smile.gif
Dzięki wielkie i pozdro wink.gif
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.