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:
<?php { $id = $_GET['numer']; $zapytanie1 = "DELETE FROM `jakastabela` WHERE `id`='".$id."'"; $zapytanie2 = "SELECT `tytul` FROM `jakastabela` WHERE `id`>'".$id."'"; if($podlicz2 > 0) { for($i=0; $i<$podlicz2; $i++) { $a = $wynik2[$i]; $zapytanie11 = "SELECT `id` FROM `jakastabela` WHERE `tytul`='".$a."'"; $b = $wynik11[0]; $c = $b - 1; $zapytanie12 = "UPDATE `jakastabela` SET `id`='".$c."' WHERE `id`='".$b."'"; } } } ?>
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.