Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kasowanie rekordu
Forum PHP.pl > Forum > Przedszkole
Pieciek
Witam!

Jestem bardzo poczatkujący, grzebie w php i sql od wczoraj wiec prosiłbym o wyrozumiałość winksmiley.jpg kombinuję dość długo i juz nie wiem jak sobie poradzić wiec dlatego ośmielam sie tu pisac;)

Mam taki problem - mam formularz w html który dodaje do sqla 3 kolumny - autonumer, Hasło, Definicja.

Dodawanie bardzo fajnie działa, można dodawać rekordy i nawet mi sie wyświetlają, można przykład zobaczyć TUTAJ wyniki natomiast są TUTAJ

Teraz chciałbym dodać usuwanie rekordów poprzez formularz w którym by się podawało numer rekordu - formularz TUTAJ

Prowadzi on metodą post do pliku delete.php którego treść wygląda tak:

  1. <?php 
  2. $polaczenie = mysql_connect("localhost", "pieciek_student", "student");
  3. mysql_select_db("pieciek_student", $polaczenie);
  4. $sql = "DELETE FROM pieciek_student WHERE id LIKE ('$_POST[delete_pozycja]')";
  5.  
  6. if (mysql_query($sql, $polaczenie)) {
  7. echo "usunieto rekord";
  8. } else {
  9. echo "wystapil blad";
  10. }
  11. ?>

Ale wyskakuje mi że wystąpił bład - zapytanie w zmiennej $SQL zrobiłem analogicznie jak w wyświetlaniu... i nie działa sad.gif Co jest nie tak??
pEbE
  1. <?php
  2.  
  3. $id = $_POST['delete_pozycja'];
  4. $sql = "DELETE FROM pieciek_student WHERE id=$id";
  5.  
  6. if (mysql_query($sql, $polaczenie)) {
  7. echo "usunieto rekord";
  8. } else {
  9. }
  10.  
  11. ?>
TomASS
  1. DELETE
  2. FROM pieciek_student
  3. WHERE id LIKE '%123%';

Nigdy tak nie rób!
1. Masz wpisy typu id=123 i id=1234 i Twoje zapytanie dla delete_pozycja skasuje obydwa :/
Najlepiej daj:
  1. DELETE
  2. FROM pieciek_student
  3. WHERE id='123' LIMIT 1;

2. Nie dawaj nigdy bezpośrednio do zapytania danych z $_GET/ $_POST/ $_REQUEST.... zobacz co sie stanie gdy masz tak:
  1. <?php
  2. $id = $_POST['delete_pozycja'];
  3. $sql = "DELETE FROM pieciek_student WHERE id=$id";
  4. ?>

A w $_POST['delete_pozycja'] wpiszez 1 OR 1 smile.gif Wtedy zapytanie bedzie wygladać tak:
  1. DELETE
  2. FROM pieciek_student
  3. WHERE id=1 OR 1;
A wiesz co to spowoduje..... jak się temu zabezpieczyć poczytaj o tym.
Pieciek
No ok a jeśli w danym skrypcie bedzie fantycznie ponad np 200 rekordów i ktoś wpisze 123 zeby skasowac włąsnie sto dwudziesty trzeci rekord? bo dobrze rozumiem ze tu chodzi o zablokowanie usuniecia trzech rekordów po kolei?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.