Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Usuwanie rekordów z bazy danych
adrianozo
post
Post #1





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


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 (IMG:style_emoticons/default/smile.gif)
Z góry dziękuje.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


mysql_error

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

czyli dane otrzymujesz jako $_GET['usun']

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

(IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował Pawel_W 14.11.2009, 10:01:30
Go to the top of the page
+Quote Post
zordon
post
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


jak cię przekierowuje na główną to moze nie wchodzi ci kod sprawdzajacy admina. sprawdz sobie zawartosc $_SESSION za pomoca die(var_dump($_SESSION));
Go to the top of the page
+Quote Post
adrianozo
post
Post #4





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował adrianozo 14.11.2009, 10:14:04
Go to the top of the page
+Quote Post
iVorIus
post
Post #5





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


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.
Go to the top of the page
+Quote Post
adrianozo
post
Post #6





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


Jak dla mnie to link powinien wyglądać tak:

Kod
index.php?usunartykul=13
Go to the top of the page
+Quote Post
iVorIus
post
Post #7





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


A jak dla mnie tak:
  1. index.php?page=usunartykul&id=13


Ten post edytował iVorIus 14.11.2009, 11:54:34
Go to the top of the page
+Quote Post
piotr94
post
Post #8





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


  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ć
(IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
adrianozo
post
Post #9





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


Różnica jest tylko taka, że adres tworzy się taki:

Kod
index.php?id=13


A dalej nie usuwa
Go to the top of the page
+Quote Post
iVorIus
post
Post #10





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


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

Ten post edytował iVorIus 14.11.2009, 12:47:53
Go to the top of the page
+Quote Post

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: 22.08.2025 - 15:22