![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 133 Pomógł: 6 Dołączył: 26.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam ciągle jeden ten sam problem i nigdzie nie mogę znaleźć ani odpowiedzi a także rozwiązania.
Cytat Mając przykładowo tabele : ID|NAZWA| PUNKTY ---------------------- 1 | DATA1 | 0 2 | DATA2 | 0 3 | DATA3 | 0 4 | DATA4 | 0 Wykonuje pętle
Wrzucam je do bazy przy pomocy funkcji oraz switcha:
Ktoś może zna na to jakiś sposób?bo puki co mój zawsze robi update tylko ostatniego ID |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 69 Dołączył: 23.10.2004 Skąd: Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
Nadpisujesz w pętli zmienne.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 133 Pomógł: 6 Dołączył: 26.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nic nie pomogło (IMG:style_emoticons/default/sad.gif)
A może muszę jakąś zmienną do funkcji dopisać? obecnie mam function update_dane($dane) Ten post edytował Soulast 4.11.2010, 00:37:54 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
WHERE id IN (3,5,7,9) chyba Ci pomoże... Tylko pamiętaj, że jeśli checkboxy oznaczysz jako nazwa[], to dostaniesz tablicę id-eków i musisz to ładnie do stringa poprzez użycie implode połączyć.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 133 Pomógł: 6 Dołączył: 26.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
WHERE id IN (3,5,7,9) chyba Ci pomoże... Tylko pamiętaj, że jeśli checkboxy oznaczysz jako nazwa[], to dostaniesz tablicę id-eków i musisz to ładnie do stringa poprzez użycie implode połączyć. Obecnie dodałem do tego checkbox oraz co wygląda następująco:
puki co dostaje takie error:
Uważam się za jeszcze bardzo początkującego samouka więc z góry przepraszam za proste pytania (IMG:style_emoticons/default/tongue.gif) oraz spróbowałem również ręcznie WHERE id IN (3,5,7,9) lecz to robi update wszystkich id-ów tą samą wartością. Ten post edytował Soulast 4.11.2010, 14:30:25 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A to każdy id z własną wartością? No to Cię zasmucę. Według standardu języka sql nie można tego zrobić. Nie przewidziano hurtowego update rekordów w tej formie.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 133 Pomógł: 6 Dołączył: 26.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
A to każdy id z własną wartością? No to Cię zasmucę. Według standardu języka sql nie można tego zrobić. Nie przewidziano hurtowego update rekordów w tej formie. Tak raczej każdy "PUNKT" ma inną wartość. A czy istnieją inne forum hurtowego UPDATE?naprawdę szukałem ale nigdzie nie mogę znaleźć odpowiedzi. Może pod złym wyrażeniem szukam;) |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Tu chodzi o to, że nie ma w języku SQL takiej formy jak update jednym zapytaniem wielu rekordów nadając im różne wartości. Można jedynie wiele rekordów tymi samymi danymi i wtedy właśnie używa się WHERE id IN (numerki) bo wtedy wszystkie wymienione ustawiają się na podany w zapytaniu. Jeśli chcesz nadawać i m różne wartości to albo musisz pogrupować je po tych wartościach i wykonać tyle zapytań ile jest różnych wartości (czyli ileś rekordów, które ustawiasz na 5 poleci jednym zapytaniem, a ileś które ma mieć 9 poleci innym), albo wykonać update dla każdego rekordu oddzielnie. Po prostu nie da się inaczej, bo tego SQL nie przewiduje i nigdy nie przewidywał, choć dla niektórych byłoby to wygodne.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 133 Pomógł: 6 Dołączył: 26.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mimo wszystko po 3ch dniach męki znalazłem rozwiązanie.
Oto poniższy działający już przykład :
Wrzucam dane przy pomocy funkcji:
Podaje ten przykład ponieważ w moim wypadku się sprawdził także może ktoś kto czegoś podobnego szuka może i skorzysta (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował Soulast 4.11.2010, 17:22:04 |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Ech.... Czyli zrobiłeś to o czym każdy tutaj piszący wie. Puściłeś w pętli każde zapytanie osobno. A w temacie ewidentnie sugerowałeś, że chcesz optymalizacji tak, by było jak najmniej zapytań, a co ja ująłem w poprzednim poście słowami: "albo wykonać update dla każdego rekordu oddzielnie."
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 18:20 |