Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP][MySQL] Usuwanie rekordów z bazy, Jak wykonać skrypt usuwania?
-Usuwanie rekordów-
post
Post #1





Goście







Wykonałem stronkę która wyświetla prosta bazę danych leków z możliwością ich usunięcia za pomocą przycisku.
http://pics.tinypic.pl/i/00271/9iji7clvpz8g.jpg

Przycisk pobiera aktualne ID wiersza, po naciśnięciu przekierowuje póki co na pustą stronę.
http://files.tinypic.pl/i/00271/oxigjy7toy9m.jpg

Chce aby po przekierowaniu wyświetlało mi się pytanie o usunięcie danego rekordu z pobranym ID z poprzedniej strony. Do wyboru byłoby Tak usuń oraz nie, nie usuwaj lecz nie wiem gdzie dokładnie mam zamieścić kod do usuwania(na pierwszej stronie czy też na drugiej pustej). Projekt to mój własny pomysł na naukę PHP,MySQL i HTMLA 1.0 w jednym, dlatego proszę o wyrozumiałość i wyjaśnienie mi co musiałbym zrobić i wiedzieć.

Pierwsza strona z przedstawionych na zdjęciu. Posiada ona w sobie taki kod. Druga ze względu na brak pomysłu ,nie ma zapisanego skryptu.
  1. <?php
  2. ob_start(); error_reporting(E_ALL ^ E_NOTICE);
  3. include 'db.php'; // połączenie się z bazą danych
  4. $link = mysql_connect("localhost", "root", "x")or die("Could not connect");
  5. $mysql_baza = 'szpital';
  6. // połączenie ze schematem bazy danych
  7. mysql_select_db($mysql_baza) or die('Błąd: nie udało się wybrać schematu bazy danych.');
  8.  
  9. $pobierz = "SELECT * FROM lek";
  10. $wynik = mysql_query($pobierz) or die("Złe zapytanie");
  11. {
  12. echo '<tr >
  13. <td width="130px" height="10px"><b>ID Leku</b></td>
  14. <td width="130px" height="10px"><b>Nazwa leku</b></td>
  15. <td width="130px" height="10px"><b>Producent leku</b></td>
  16. <td width="130px" height="10px"><b>Cena leku</b></td>
  17. <td width="130px" height="10px"><b>Kupujacy</b></td>
  18. <td width="130px" height="10px"><b>Usuń lek:</b></td>
  19. </tr>';
  20. while ($row = mysql_fetch_array($wynik)) {
  21. echo "<tr>";
  22. echo "<td>$row[ID_lek]</td>";
  23. echo "<td>$row[Nazwa_lek]</td>";
  24. echo "<td>$row[Producent_lek]</td>";
  25. echo "<td>$row[Cena_lek]</td>";
  26. echo "<td>$row[Kupujacy_lek]</td>";
  27. echo "<td>
  28. <form action='usun.php' method='get'name='usun'>
  29. <input type='submit' name='pusun' value='\"".$row['ID_lek']."\"'/>
  30. </form>
  31. <td> ";
  32. }
  33. }
  34. mysql_close($link);
  35. ?>
  36. <?php
  37. if (isset($_GET['pusun'])) {
  38. header("location: usun1.php");
  39. exit();
  40. }
  41. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
_Borys_
post
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


W skrócie i celach testowych plik usun1.php:

  1. <?php
  2.  
  3. var_dump($_GET);
  4. $link = mysql_connect('localhost', 'username', 'password')or die(mysql_error());
  5. mysql_select_db('szpital',$link)or die(mysql_error());
  6. mysql_query("DELETE FROM lek WHERE ID_lek = '{$_GET['pusun']}'") or die(mysql_error());
  7. mysql_close($link);
  8.  
  9. ?>


W twoim formularzu usunąłem cudzysłowy w submit value aby było łatwiej bo w $_GET było potem z cudzysłowami i trzebaby potem je pousuwać albo w formularzu stworzyć jeszcze <input type = "hidden".../> i z tego pobierać dane.
  1. ...
  2. <form action='usun.php' method='get'name='usun'>
  3. <input type='submit' name='pusun' value='".$row['ID_lek']."'/>
  4. </form>
  5. ...

Go to the top of the page
+Quote Post
-Usuwanie rekordów-
post
Post #3





Goście







Po tym co poradziłeś oraz przeróbce własnego kodu, zrezygnowałem ze przeniesienia pytania na kolejną stronę. Wyświetla się na tej samej lecz po zastosowaniu var_dump($GET) wyświetliło coś takiego: array(1) { ["pusun"]=> string(2) "10" } Chcesz usuną lek o ID 10? Tak | Nie , a następnie array(0) { } .


http://images.tinypic.pl/i/00272/2v8vtzpjmuqo.jpg
http://images.tinypic.pl/i/00272/14r1wu4b64ik.jpg

Skryptu do podglądu
  1. <?php
  2. ob_start(); error_reporting(E_ALL ^ E_NOTICE);
  3. include 'db.php'; // połączenie się z bazą danych
  4. $link = mysql_connect("localhost", "root", "x")or die("Could not connect");
  5. $mysql_baza = 'szpital';
  6. // połączenie ze schematem bazy danych
  7. mysql_select_db($mysql_baza) or die('Błąd: nie udało się wybrać schematu bazy danych.');
  8.  
  9. $pobierz = "SELECT * FROM lek"; //pobieranie danych
  10. $wynik = mysql_query($pobierz) or die("Złe zapytanie");
  11. { //wyświetlenie nazw kolumn
  12. echo '<tr >
  13. <td width="130px" height="10px"><b>ID Leku</b></td>
  14. <td width="130px" height="10px"><b>Nazwa leku</b></td>
  15. <td width="130px" height="10px"><b>Producent leku</b></td>
  16. <td width="130px" height="10px"><b>Cena leku</b></td>
  17. <td width="130px" height="10px"><b>Kupujacy</b></td>
  18. <td width="130px" height="10px"><b>Usuń lek:</b></td>
  19. </tr>';
  20. // pobieranie z bazy danych
  21. while ($row = mysql_fetch_array($wynik)) {
  22. echo "<tr>";
  23. echo "<td>$row[ID_lek]</td>";
  24. echo "<td>$row[Nazwa_lek]</td>";
  25. echo "<td>$row[Producent_lek]</td>";
  26. echo "<td>$row[Cena_lek]</td>";
  27. echo "<td>$row[Kupujacy_lek]</td>";
  28. echo "<td>
  29. <form action='usun.php' method='get'name='usun'>
  30. <input type='submit' name='pusun' value='".$row['ID_lek']."'/>
  31. </form>
  32. <td> ";
  33. }
  34. }
  35. mysql_close($link);
  36. ?>
  37. <?php
  38. var_dump($_GET);
  39. $link = mysql_connect('localhost', 'root', 'x')or die(mysql_error());
  40. mysql_select_db('szpital',$link)or die(mysql_error());
  41. // Usuwanie leku
  42. if (isset($_GET['pusun'])) {
  43. echo '<span class="pyt">Chcesz usuną lek o ID ' . $_GET['pusun'] . '? <a href="usun.php?usunid='.$_GET['pusun'].'">Tak</a> | <a href="baza.php">Nie</a></span>';
  44. exit();
  45. }
  46. if (isset($_GET['usunid'])) {
  47. // usuwanie leku
  48. $idu = $_GET['usunid'];
  49. $sql = mysql_query("DELETE from szpital.lek WHERE ID_lek='".$row['ID_lek']."' LIMIT 1") or die (mysql_error());
  50. header("location: usun.php");
  51. exit();
  52. }
  53. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Za drugim razem widzisz pustą tablice, bo robisz przecież przekierowanie:
header("location: usun.php");
po usunieciu. A nie usuwa ci, bo dane do usuwania z jakieś niepojętego powodu bierzesz z $row
$sql = mysql_query("DELETE from szpital.lek WHERE ID_lek='".$row['ID_lek']."' LIMIT 1") or die (mysql_error());

Przecież rekord co usuwasz masz w $_GET i stamtad masz go brac
$sql = mysql_query("DELETE from szpital.lek WHERE ID_lek='".$_GET['usunid'])."' LIMIT 1") or die (mysql_error());
Go to the top of the page
+Quote Post
-Usuwanie rekordów-
post
Post #5





Goście







Mój błąd, pewnie upierdliwie to wyglądało. Dziękuje za pomoc w zlokalizowaniu błędu.
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: 15.09.2025 - 09:14