![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 14.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich szanownych użytkowników.
Nie wiem, czy ten temat założyłem w dobrym dziale, ale mimo tego bardzo proszę o pomoc. Mam tabelę w MySQL z czterema polami(id, tytul, tresc, data). Jak można się domyślić pierwsze pole zawiera identyfikator danego wpisu (nie zastowałem tu autoinkramentacji tylko mój własny skrypt PHP). Więc powiedzmy, że mam 10 wpisów w tej tabeli. W polu "id" mam teraz liczby od 1 do 10. Ale co się stanie, gdy usunę przykładowo wpis, którego numer identyfikatora wynosi 5? W numeracji powstanie wielka luka (po liczbie 4 wystąpi 6). Napisałem więc skrypt, który po usunięciu wybranego przezmnie wpisu obniży numery identyfikatorów wszytkich pól "id", które miały wartość większą od tej, którą usunęliśmy (np. jak wybierzemy do usunięcia wpis o identyfikatorze 5, to obniżone o 1 zostaną identyfikatory od 6 wzwż). Oto kod owego skryptu, który niestety nie działa:
Jak widać najpierw nasz skrypt usuwa wybrane przez nas pole, a potem, wykorzystując pętlę for obniża wszystkie identyfikatory większe od tego wybranego o 1. Taka jest teoria. W praktyce skrypt nie spełnia swojej funkcji. Ma ktoś pomysł, dlaczego owy skrypt nie działa? Byłbym bardzo wdzięczny za pomoc. Z wyrazami szacunku, terminator211. Ten post edytował terminator211 14.02.2012, 12:50:08 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Po pierwsze i najważniejsze: czemu zrezygnowałeś z autoincrement i co ci w ogole przeszkadzają te dziury? Dziury normalna sprawa że są.
Po drugie: obnizenie wszystkich ID wykonuje się jednym banalnym zapytaniem, że zadnego pobierania czy petli:
gdzie 5 to id, które wlasnie kasowalismy -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 14.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, może nie bardzo sprecyzowałem moje potrzeby. Otóż piszę system, w którym dodaję powiadomienia do tabeli, a potem je wyświetlam. To żeby nie było dziur jest potrzebne do prawidłowego wyświetlenia wyników z tej tabeli.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Otóż piszę system, w którym dodaję powiadomienia do tabeli, a potem je wyświetlam A w czym tu przeszkadza autoincrement? W niczym.Cytat To żeby nie było dziur jest potrzebne do prawidłowego wyświetlenia wyników z tej tabeli. Również dziury w niczym nie przeszkadzają.Jeśli ci coś tu przeszkadza, znaczy, że źle się z tym obchodzisz. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 14.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nospor, bardzo dziękuję ci za pomoc. Niepotrzebnie użyłem pętli do zmniejszania identyfikatorów (wystarczyło zapytanie, które napisałeś). Jeszcze raz bardzo Ci dziękuję.
![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Proszę.
Nie mniej jednak nadal uważam że źle podchodzisz do tematu. No ale to Twoja sprawa. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:22 |