![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 0 Dołączył: 3.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Kochani!
Jak zrobić blokadę, aby np. przy update skrypt nie wykonał więcej niż 1 proces? Chodzi mi o to, że na przykład ktoś edytuje artykuł i wciska "zmień". I jest funkcja update() i aby była blokada, że może wykonać tylko i wyłącznie jeden proces i będzie on właśnie update? Mam taki problem, że już drugi raz zdarzyło mi się, że przy updatowaniu pozmieniał wszystkie wpisy w bazie :/ mimo że miał warunek WHERE id_uzytkownika=$idusera AND numer_artykulu=$edytowany_artykul_numer BARDZO WAS proszę o pomoc, życzliwe rady i jakby była możliwość o jakieś przykłady Z poważaniem |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Temat wiele razy byl na tym forum, poszukaj. Najprosciej zrobic przeladowanie lub zapisywac w sesji ze juz taka czynosc zostala wykonana.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 0 Dołączył: 3.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Temat wiele razy byl na tym forum, poszukaj. Najprosciej zrobic przeladowanie lub zapisywac w sesji ze juz taka czynosc zostala wykonana. Właśnie o to chodzi, że jest zaraz po update(); echo "<script>location.href='index.php'</script>"; Skrypt działał przez kilka miesięcy bez zarzutu, aż nagle po jednej edycji jakiegoś użytkownika (trudno stwierdzić którego, bo wszystko się pozmieniało) edycji nie uległ tylko jeden artykuł, ale wszystkie (takie same tytuły, taki sam tekst, ta sama kategoria). Skrypt nawet nie zdołał dojść do przekierowania lub sprawdzenia sesji. Wykonał update (pomiając warunki WHERE) dla wszystkich wpisów w bazie, dopiero jak skończył wykonał przekierowanie. I stąd moje pytanie czy jest jakaś możliwość nakazania przy UPDATE, aby wykonał daną czynność tylko i wyłącznie raz i zakończył. Pozdrawiam |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 0 Dołączył: 3.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Aby było zabawniej ( :/ ) skrypt wykonał się w dziwaczny sposób.
Przykład: Chcę zmienić tytuł, tekst i kategorię artykuły. Tytuł: AAAA Tekst: BBBB Kategoria: CCCC Id_artykulu (hidden): 101 Id_uzytkownika (hidden): 102 Update:
Efekt w bazie danych: Wszystkie rekordy maja zmieniony: Tytul na AAAA Tekst na BBBB a KATEGORIA na , kategoria= (dokładnie tak) ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat I stąd moje pytanie czy jest jakaś możliwość nakazania przy UPDATE, aby wykonał daną czynność tylko i wyłącznie raz i zakończył. NIE Cos nie chce mi sie wierzyc ze to to zapytanie tak Ci namieszalo. Przeciez warunek ogranicza zmiane. Dla pewnosci mozesz dodac LIMIT 1. Odnosnie przeladowania mowielem o header a nie js. Pokombinuj z sesja. -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 0 Dołączył: 3.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Właśnie
![]() , kategoria= Wszystkie przyjęły taką wartość. Jak zabezpieczy, aby nie działo się tak w przyszłości to nie mam pojęcia ![]() jest sprawdzenie sesji, są warunki, jest zaraz przekierowanie po update() i jest limit. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wszystkie przyjęły taką wartość. Hm moze ktos Ci psikusa zrobil. Przepatrz jeszcze raz kod bo moze jest jeszcze jakis blad. -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 0 Dołączył: 3.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Hm moze ktos Ci psikusa zrobil. Przepatrz jeszcze raz kod bo moze jest jeszcze jakis blad. Na początku pierwsze co przyszło mi na myśl to właśnie to, że "ktoś zrobił psikusa". Jednak gdyby rzeczywiście tak było to czy męczył by się, aby wyedytować artykuł i wpisać sensową treść, kategorię i tytuł? (chodzi o to, że wszystkie wpisy zmieniły się podług tej zmiany). Sprawdzałem skrypt jak się zachowuje na różnego rodzaju próby z wstawianiem przekombinowanego kodu php, java (wyłączona), html (wyłączony)... różne kombinacje. :/ Przychodzi mi na myśl taka oto sytuacja: W czasie edycji serwer działał poprawnie. Użytkownik wcisnął "zmień i musieli wyłączyć apache/mysql czy jak? I pełne zapytanie nie poszło. Włączyli ponownie bez wyczyszczenia pamięci i wykonało się błędne zapytanie. Czy to możliwe? Ten post edytował atomek_16 3.06.2006, 13:18:51 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Raczej cos takiego jest nie mozliwe, poniewaz musisz wyslac cale zapytanie zeby wykonac. Trudno stwierdzic co jest przyczyna.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 18:48 |