![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie!
Od jakiegoś czasu męczę się z skryptem edycji rekordów z bazy MySQL. System sam w sobie działa ale... o dziwo nie dla rekordów dla których w założeniu powinien. Sprawdzałem zmienne podczas wykonywania skryptu i otrzymałem taki wynik: -> dla id = 100 (żeby było śmieszniej załóżmy, że takiego id w bazie danych NIE MA) wyświetla rekordy o id = 251 - 300 a jako punkt początkowy ($start_id) przyjmuje id = 51 (również NIE MA ale punkt przyjął prawidłowo, gdyż zakres wyświetlanych rekordów ma wynosić 50 - począwszy od "$id - 50" do "$id"). -> dla id = 100 powinien wyświetlać rekordy 51,52,53,54,55,..,98,99,100. What the fuck!? Nie wiem o co w tym wszystkim chodzi... skrypt wykonuje się prawidłowo ale gdy skasuje z bazy 50 rekordów należących do jednej grupy (posiadające tę samą wartość w danej kolumnie) to pozostałe szlag trafia.. :/ Zamieszczam fragment skryptu odpowiedzialny za ten incydent:
Z góry dzięki za wszelką pomoc ![]() Pozdrawiam! P.S. Dodam jeszcze, że data `wyciągana` jest prawidłowo ![]() ____________________________________________________________________ EDIT!!! Zrozumiałem wreszcie swój problem i sądzę, że polega on na... 1. jeśli w bazie danych są rekordy mające id 151 - 200 && 251 - 300 (czyli dwa bloki po 50 rekordów) 2. to przyjmując $start_id = $id - 50 (gdzie $id = 50) wychodzi nam 0 3. podstawiając wynik do zapytania otrzymamy:
4. dlatego tak naprawdę wylosuje mi z bazy pierwsze 50 rekordów - niezależnie od id jakim się zaczyna... w tym wypadku 151 będzie numerem 1 tak więc wyświetli się 151 - 200 Pytanie do Was i liczę, ze ktoś mi wreszcie pomoże ![]() W jaki sposób mogę przyjmować LIMIT x,50 tak by x nie był liczony jako `któryś tam` rekord w bazie - w rzeczywistości - tylko wyszukiwał po identyfikatorze (id). ? ____________________________________________________________________ ROZWIĄZANIE!!! Zbieg okoliczności, że tak szybko to rozwiązałem. Zapomniałem totalnie o klauzurze `HAVING` ![]() Wystarczyło ograniczyć rekordy poprzez id a LIMIT zmienić na 50 ![]() Cała filozofia... Pozdrawiam; może ktoś będzie miał kiedyś identyczny problem. Ten post edytował modern-web 14.06.2011, 20:49:31 -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 05:20 |