Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kasowanie rekordu
Pieciek
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 25.03.2006

Ostrzeżenie: (0%)
-----


Witam!

Jestem bardzo poczatkujący, grzebie w php i sql od wczoraj wiec prosiłbym o wyrozumiałość (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Co jest nie tak??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
TomASS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


  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 (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 08:17