Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Formularz z checkbox - dodawanie nowych wartości do bazy i usuwanie starych
Forum PHP.pl > Forum > Przedszkole
Vhaeraun
Witam,
moje pytanie nie jest "jak to zakodować" ale raczej "jak wymyślić optymalny sposób na rozwiązanie problemu".
Problem jest taki:
Mam stronę, na której tworzy się obiekty - powiedzmy, że potrawy.
Następnie edytujemy daną potrawę - zaznaczamy na liście checkbox'y które odpowiadają składnikom tej potrawy (czyli zaznaczamy, że sałatka wymaga: jajko, sałata, pomidor, majonez i ziemniak, a resztę checkboxów zostawiamy pustą).
Następnie zapisujemy w bazie danych te informacje (mam tabelę, która łączy nazwę potrawy z nazwą składnika, czyli dla każdego składnika przypisanego do danej potrawy jest jeden rekord).
Jak na razie wszystko jest ok, ale nagle zmieniamy zdanie bo uważamy, że do tej sałatki zamiast majonezu należy użyć oleju.
Bierzemy wtedy formularz do edycji i odznaczamy "majonez", a zaznaczamy "olej".
I teraz jak to najlepiej zapisać w bazie danych ?
Do tej pory stosowałem taki sposób, że wyrzucałem z tabeli wszystkie wpisy gdzie id_potrawy = id_sałatki, a następnie od nowa dodawałem wszystkie wartości z formularza, gdzie wartość checkbox'a = 1.
Działa to szybko ale indeksy w bazie szybko się rozrastają (żeby zmienić 1 rekord wyrzucam 5 rekordów i dodaję od nowa 5, więc już jest 5 kolejnych wpisów) no i mam pewność, że wszystko co trzeba jest usunięte.
Myślałem nad tym, żeby najpierw przelecieć przez wszystkie checkbox'y i zobaczyć czy takie wpisy już istnieją w bazie, jeśli nie to je dodać, a następnie przez bazę żeby sprawdzić, które wpisy istnieją w bazie, a nie ma ich zaznaczonych w formularzu i je usunąć. Tylko nie wiem czy taki sposób jest w miarę szybki i sensowny ? Ewentualnie może macie jakieś lepsze pomysły na rozwiązanie tego ?
monsarrat
miałem podobny problem i kolega NOSPOR z forum pomógł mi go rozwiązać


http://nospor.pl/opcje-dwuwartosciowe-przechowywanie.html
W paczce do ściągnięcia znajduje się w pełni działający skrypt, który zapisuje dane oraz wyszukuje dane.

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.