Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Usuwanie rekordów z bazy danych
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam,
Mam problem z usuwaniem rekordów z bazy danych.
Otóż posiadam kod, który wyświetla mi rekordy, wybieram rekord z listy, klikam przycisk usuń i jedyne co się dzieje to przekierowanie na stronę główną i utworzenie nowego adresu URL typu:

Kod
index.php?usun=(13)+asdasda


(13)=id
asdasda=tytuł

Nie usuwa zrekordu z bazy danych.

Oto kod:

  1. <?php
  2. $connect = mysql_connect('localhost', 'root', 'pass') or die('Nie mo&#x17C;na po#x142;&#x105;czyc si&#x119; z baz&#x105; danych. Przepraszamy za k#x142;opoty');
  3. $db = mysql_select_db('db') or die('Nie mo&#x17C;na po#x142;&#x105;czyc si&#x119; z baz&#x105; danych. Przepraszamy za k#x142;opoty');
  4. $zapytanie = "SELECT `id`, `tytul` FROM `artykuly`";
  5. $idzapytania = mysql_query($zapytanie);
  6. $id = $_GET['id'];
  7. if($_SESSION['login']!=="admin" or $_SESSION['haslo']!=="haslo")
  8. {
  9. echo '<meta http-equiv="Refresh" content="0; url=index.php?page=paneladmina&wyloguj=1" />';
  10. }
  11. else
  12. {
  13. }
  14. if(!$_GET['id'])
  15. {
  16. echo '<center><form action="index.php?page=usunartykul" method="get">
  17. <select name="usun"> ';
  18. while ($wiersz = mysql_fetch_row($idzapytania))
  19. echo '<option>('.$wiersz[0].') '.$wiersz[1].'</option>';
  20. </select>
  21. <input type="submit" value="Usu&#x144;">
  22. <br>
  23. </form>';
  24. echo'<br><FORM><INPUT TYPE="button" VALUE="Wr&#xF3;&#x107; do Panelu Administratora" onclick="history.go(-1)"></FORM></center>';
  25. }
  26. else
  27. {
  28. $zapytanie = 'DELETE FROM `artykuly` WHERE `id`='.$id.'';
  29. $idzapytania = mysql_query($zapytanie);
  30. echo '<center>Usuni&#x119;to artyku&#x142;<br><br><FORM><INPUT TYPE="button" VALUE="Wr&#xF3;&#x107; do Panelu Administratora" onclick="history.go(-2)"></FORM></center>';
  31. }
  32. mysql_close($connect);
  33. ?>


Proszę o pomoc smile.gif
Z góry dziękuje.
Pawel_W
mysql_error

EDIT:
link ma postać:
index.php?usun=(13)+asdasda

czyli dane otrzymujesz jako $_GET['usun']

to skąd bierzesz to $_GET['id']?

winksmiley.jpg
zordon
jak cię przekierowuje na główną to moze nie wchodzi ci kod sprawdzajacy admina. sprawdz sobie zawartosc $_SESSION za pomoca die(var_dump($_SESSION));
adrianozo
Dałem mysql_error i pokazał

0

Linia 4:

  1. $db = mysql_select_db('usr_sat258_2') or die('Nie mo?na po#x142;?czyc si? z baz? danych. Przepraszamy za k#x142;opoty');


A sesje trzyma smile.gif
iVorIus
Link powinien tak wyglądać:
  1. index.php?usun=13


Tylko nie widzę, gdzie odbierasz zmienną usun i czy ma ona być odebrana w index.php, czy w jakimś panelu admina.
adrianozo
Jak dla mnie to link powinien wyglądać tak:

Kod
index.php?usunartykul=13
iVorIus
A jak dla mnie tak:
  1. index.php?page=usunartykul&id=13
piotr94
  1. <?php
  2. $connect = mysql_connect('localhost', 'root', 'pass') or die('Nie mo&#x17C;na po#x142;&#x105;czyc si&#x119; z baz&#x105; danych. Przepraszamy za k#x142;opoty');
  3. $db = mysql_select_db('db') or die('Nie mo&#x17C;na po#x142;&#x105;czyc si&#x119; z baz&#x105; danych. Przepraszamy za k#x142;opoty');
  4. $zapytanie = "SELECT `id`, `tytul` FROM `artykuly`";
  5. $idzapytania = mysql_query($zapytanie);
  6. $id = $_GET['id'];
  7. if($_SESSION['login']!=="admin" or $_SESSION['haslo']!=="haslo")
  8. {
  9. echo '<meta http-equiv="Refresh" content="0; url=index.php?page=paneladmina&wyloguj=1" />';
  10. }
  11. else
  12. {
  13. }
  14. if(!$_GET['id'])
  15. {
  16. echo '<center><form action="index.php?page=usunartykul" method="get">
  17. <select name="id"> ';
  18. while ($wiersz = mysql_fetch_row($idzapytania))
  19. echo '<option value="'.$wiersz[0].'"> '.$wiersz[1].'</option>';
  20. </select>
  21. <input type="submit" value="Usu&#x144;">
  22. <br>
  23. </form>';
  24. echo'<br><FORM><INPUT TYPE="button" VALUE="Wr&#xF3;&#x107; do Panelu Administratora" onclick="history.go(-1)"></FORM></center>';
  25. }
  26. else
  27. {
  28. $zapytanie = 'DELETE FROM `artykuly` WHERE `id`='.$_GET['id'].'';
  29. $idzapytania = mysql_query($zapytanie);
  30. echo '<center>Usuni&#x119;to artyku&#x142;<br><br><FORM><INPUT TYPE="button" VALUE="Wr&#xF3;&#x107; do Panelu Administratora" onclick="history.go(-2)"></FORM></center>';
  31. }
  32. mysql_close($connect);
  33. ?>

spróbuj tak, powinno zadziałać
haha.gif
adrianozo
Różnica jest tylko taka, że adres tworzy się taki:

Kod
index.php?id=13


A dalej nie usuwa
iVorIus
Nakarmię Cie na całe życie:
Musisz stworzyć link, który będzie się da danej czynności odwoływał (index.php?page=usunartykul&id=4), następnie skrypt musi to odbierać, więc najprościej jest zrobić if( $page == 'usunartykul' && $id != '' ) w pliku index.php, jeżeli prawda, usuń z bazy artykuł o danym id ( $id ).

Nie podam Ci gotowego rozwiązania, bo to wyjaśni twój problem teraz, w przyszłości go nie rozwiążesz.
Ważne żebyś zrozumiał problem, nie od razu go rozwiązał.
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.