![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Mam taką metodę bind w klasie DB:
W formularzu przesyłam checkboxy, wszystkie z tej samej tablicy, powiedzmy name="boxChecked[]". I teraz chcę usunąć te rekordy z bazy w których ID mam przesłane w $_POST['boxChecked'] Robię to tak: Ten kod działa. Moje pytanie: Czy to jest po bożemu zrobione? Czegoś brakuje? Z tego co się orientuję to dane z POST z checkboxa to tablica stringów, więc typowanie na int by sie przydało w metodzie massDelete, tak? Czy to >>> $row = (int) $row; wystarczy? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy masz założone więzy integralności na tych dwóch tabelach, ale gdyby były to wystarczy usuwanie produktu - dzięki więzom integralności zostaną usunięte właściwości bez potrzeby usuwania ich po stronie PHP.
Zamiast pętli for zastosowałbym usuwanie z użyciem klauzuli IN i bez użycia metody bind - id i tak masz integer. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy masz założone więzy integralności na tych dwóch tabelach, ale gdyby były to wystarczy usuwanie produktu - dzięki więzom integralności zostaną usunięte właściwości bez potrzeby usuwania ich po stronie PHP. Rozumiem. Nie porobiłem więzów integralności. Ale to moje niedopatrzenie. A gdyby były to wystarczy że wykonam drugie zapytanie (usuwanie z `product`) a zapytanie pierwsze wykona się samo po stronie serwera mysql?bez użycia metody bind - id i tak masz integer. No w sumie racja.Zamiast pętli for zastosowałbym usuwanie z użyciem klauzuli IN Np tak?Kod delete from t O to Ci chodziło? W sumie chyba jest to bardziej wydajne niż oddzielne zapytania per iteracja pętli.
where id in (1, 4, 6, 7) Ten post edytował sadistic_son 10.01.2023, 12:15:58 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Tak.
Tak. Sprawdź jednak czy każde id jest integer, powinno być, ale nie musi. Ten post edytował trueblue 10.01.2023, 12:18:08 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki.
Tylko jeszcze trzeba wtedy te IDki z checkboxa jakoś wyczyścić. Czy to tak może być?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dopisałem w poście wcześniejszym (do tego jest array_filter).
Dlaczego foreach? Od tego jest implode. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Dopisałem w poście wcześniejszym (do tego jest array_filter). Tutaj w tym temacie? Wybacz , ale nie dopisałeś (IMG:style_emoticons/default/wink.gif) Dlaczego foreach? Od tego jest implode. A no racja. Prościej. Dzięki!EDIT: Ale chwila. A jak teraz ma wyglądać upewnienei się, że mam same INTy w wartościach do bazy?
EDIT2: myślę, że tak będzie dobrze: Zgadza się? Ten post edytował sadistic_son 10.01.2023, 12:55:53 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Tutaj w tym temacie? Wybacz , ale nie dopisałeś (IMG:style_emoticons/default/wink.gif) Dopisałem w poście #4. Ale chwila. A jak teraz ma wyglądać upewnienei się, że mam same INTy w wartościach do bazy? A o tym w poście #6. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ok, wszystko jasne. Ale array_map też robi robotę (IMG:style_emoticons/default/smile.gif)
Dzięki za pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 14:08 |