Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 5 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Usuwanie rekordów z tabeli
04-16-2012, 06:53 PM
Post: #1
Usuwanie rekordów z tabeli
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).
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości