Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL]Dodawanie, usuwanie, modyfikowanie rekordów, Dodawanie, usuwanie z relacji many-to-many.
Fluke
post 19.06.2013, 11:24:08
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
b4rt3kk
post 19.06.2013, 11:31:03
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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ć?


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
Fluke
post 19.06.2013, 11:39:25
Post #3





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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

Ten post edytował Fluke 19.06.2013, 11:40:05
Go to the top of the page
+Quote Post
b4rt3kk
post 19.06.2013, 11:52:26
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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).


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
Fluke
post 19.06.2013, 11:57:32
Post #5





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


W sumie jest to chyba najlepsze rozwiązanie ze wszystkich jakie słyszałem... smile.gif
Dzięki wielkie i pozdro wink.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 15:15