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:
$Data_Query = $connect->query("SELECT * FROM `replacements` WHERE `id` = '$id'"); $Data_Assoc = $Data_Query->fetch_array(MYSQLI_NUM); $Data = $Data_Assoc[8]; $start_id = $id - 50; $Query = $connect->query("SELECT * FROM `replacements` ORDER BY `id` ASC LIMIT $start_id,50"); $x = 1; while ($r = $Query->fetch_array(MYSQLI_NUM)) { $Display .= "<td><p class=\"NO\"><input name=\"Line_2_".$x."\" type=\"text\" value=\"".$r[2]."\" /></p></td>"; $x++; }
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:
$Query = $connect->query("SELECT * FROM `replacements` ORDER BY `id` ASC LIMIT 0,50");
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.