Forum hosting 4un.eu

Pełna wersja: Usuwanie rekordów z tabeli
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Czasami zachodzi sytuacja, że trzeba usunąć z tabeli konkretny rekord,
Do tego celu służy polecenie:
DELETE FROM x WHERE y=z , WHERE określa warunek, do usunięcia rekordu,
gdzie x to nazwa tabeli, a y to nazwa pola zawierająca wartość z.
Jeśli nie określimy warunku zostaną usunięte wszystkie rekordy z tabeli.
Należy pamiętać, aby użytkownik połączony z bazą danych mógł usuwać rekordy inaczej polecenie nie zostanie wykonane.
W poprzednich wątkach dotyczących bazy danych, założyłem, że posługujemy się tabelą chemia z trzema uczniami.
Aby zobrazować polecenie delete posłużę się ponownie tym założeniem. Tak więc w tabeli chemia mamy trzech uczniów:
uczeń z nr 1 dostał ze sprawdzianu 4, z odpowiedzi 3, a z aktywności 5
uczeń nr 2 dostał ze sprawdzianu 5, z odpowiedzi 5 i z aktywności 5
oraz ucznia z nr 3, który ma tylko 5 ze sprawdzianu.
Wyobraźmy sobie, że uczeń nr 2 został przepisany do innej klasy i potrzebujemy wykreślić jego z tabeli.
Polecenie w SQL będzie miało następującą postać:
Cytat:DELETE FROM chemia WHERE nr=2
Korzystając z PHP polecenie będzie wyglądało:

Cytat: $usun = mysql_query("DELETE FROM chemia WHERE nr=2");
W ten sposób z naszej tabeli zniknie, uczeń z nr 2 w dzienniku.
Oczywiście nazwa pola, tabeli czy wartość będąca warunkiem wykonania
może zostać pobrana ze zmiennej, (używanie zmiennych jest przydatne w wszelkiego rodzaju panelach administracyjnych).

Cytat:$tabela='chemia';
$pole='nr';
$uczen=2;
$usun = mysql_query("DELETE FROM $tabela WHERE $pole='$uczen'");
Wykonanie powyższych instrukcji przez interpretator PHP spowoduje
usunięcie ucznia z nr 2 z tabeli chemia. Jak wspominałem w wątku o tworzeniu tabel usunięcie ucznia z nr 2,
nie spowoduje, że uczeń, który miał nr 3 w dzienniku otrzyma nr drugi.

Możemy stosować bardziej złożone warunki pozwalające określić co powinno zostać usunięte z naszej tabeli.
(więcej o warunkach opiszę w osobnym wątku gdyż polecenie WHERE i jego parametry (zwane operatorami porównań),
są wspólne dla poleceń
SELECT, UPDATE, DELETE).
Przekierowanie