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ść 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??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
pEbE
post
Post #2





Grupa: Zarejestrowani
Postów: 106
Pomógł: 3
Dołączył: 21.03.2006
Skąd: Sosnowiec

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


  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. ?>


Ten post edytował pEbE 25.03.2006, 15:48:33
Go to the top of the page
+Quote Post
TomASS
post
Post #3





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 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
Pieciek
post
Post #4





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

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


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?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 10:08