Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Usuwanie rekordu z bazy danych
Forum PHP.pl > Forum > Przedszkole
BraveSoul
Witam,
zrobiłam bardzo prostą bazę danych (phpMyAdmin), do której można dodawać dane, edytować i usuwać je za pomocą przeglądarki.
wszystko mi ładnie i pięknie działa, ale nie ma zapytania, czy na pewno chcę usunąć rekord.

To znaczy, ze jak klikam "Usuń" to mi się te dane od razu usuwają, bez żadnego komunikatu proszącego o potwierdzenie.

A ja chciałabym, żeby po kliknięciu "usuń" wyskoczył komunikat: "Czy na pewno chcesz usunąć dane?"
i dwa przyciski Tak i Nie smile.gif z czego tak usuwa, a nie prowadzi do strony głównej.

no i nie wiem jak to zrobić.. czy znalazłaby się tutaj jakaś dobra dusza chętna do pomocy?

takie mam kody:
strona główna:
  1. <html>
  2. <head>
  3. <title>PROJEKT</title>
  4. </head>
  5. <body background="tlo.jpg" bgproperties="fixed">
  6. <p align="center">
  7.  
  8.  
  9. <font size="5">
  10.  
  11.  
  12. <?php
  13.  
  14.  
  15. function connection() {
  16. // serwer
  17. $mysql_server = "localhost";
  18. // admin
  19. $mysql_admin = "root";
  20. // hasło
  21. $mysql_pass = "haslo";
  22. // nazwa baza
  23. $mysql_db = "system_hotelowy";
  24. // nawiązujemy połączenie z serwerem MySQL
  25. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  26. or die(mysql_error());
  27. // łączymy się z bazą danych
  28. @mysql_select_db($mysql_db)
  29. }
  30.  
  31.  
  32. /* zapytanie do konkretnej tabeli */
  33.  
  34. $wynik = mysql_query("SELECT * FROM system_hotelowy.klient")
  35.  
  36.  
  37.  
  38.  
  39. /*
  40.  
  41. wyświetlamy wyniki, sprawdzamy,
  42.  
  43. czy zapytanie zwróciło wartość większą od 0
  44.  
  45. */
  46.  
  47. if(mysql_num_rows($wynik) > 0) {
  48.  
  49. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  50.  
  51. echo "<table cellpadding=\"2\" border=1>";
  52.  
  53.  
  54. while($r = mysql_fetch_object($wynik)) {
  55.  
  56. echo "<tr>";
  57.  
  58. echo "<td>".$r->ID_Klient."</td>";
  59.  
  60. echo "<td>".$r->Imie."</td>";
  61.  
  62. echo "<td>".$r->Nazwisko."</td>";
  63.  
  64. echo "<td>".$r->Miejscowosc."</td>";
  65.  
  66. echo "<td>".$r->Ulica."</td>";
  67.  
  68. echo "<td>".$r->Kod_Pocztowy."</td>";
  69.  
  70. echo "<td>".$r->Numer_Domu."</td>";
  71.  
  72. echo "<td>".$r->Numer_Lokalu."</td>";
  73.  
  74. echo "<td>".$r->Numer_Telefonu."</td>";
  75.  
  76. echo "<td>
  77.  
  78. <a href=\"del.php?a=del&ID_Klient={$r->ID_Klient}\">Usuń</a>
  79.  
  80. <a href=\"edit.php?a=edit&ID_Klient={$r->ID_Klient}\">Edytuj</a>
  81.  
  82.  
  83. </td>";
  84.  
  85. echo "</tr>";
  86.  
  87. }
  88.  
  89. echo "</table>";
  90. echo "<td>
  91.  
  92. <a href=\"dodajFORM.php\">DODAJ</a>
  93.  
  94. </td>";
  95. }
  96.  
  97.  
  98. ?>
  99.  
  100.  
  101. </font>
  102. </p>
  103. </body>
  104. </html>


i strona usuwająca:
  1. <html>
  2. <head>
  3. <title>PROJEKT</title>
  4. </head>
  5. <body background="tlo.jpg" bgproperties="fixed">
  6. <p align="center">
  7. <font size="5">
  8.  
  9. <?php
  10.  
  11.  
  12. $a = trim($_GET['a']);
  13. $ID_Klient = trim($_GET['ID_Klient']);
  14.  
  15. if($a == 'del' and !empty($ID_Klient)) {
  16.  
  17. /* usuwamy rekord */
  18. mysql_query("DELETE FROM system_hotelowy.klient WHERE ID_Klient='$ID_Klient'")
  19. or die('Błąd zapytania: '.mysql_error());
  20.  
  21. echo 'Rekord został usunęty z bazy';
  22.  
  23.  
  24.  
  25. echo "</table>";
  26. echo "<td>
  27. <br /> <br />
  28. <a href=\"index.php\">STRONA GŁÓWNA</a>
  29.  
  30. </td>";
  31. }
  32.  
  33. ?>
  34.  
  35.  
  36. </font>
  37. </p>
  38. </body>
  39. </html>

brzoza91
  1. if($a == 'del' and !empty($ID_Klient)) {
  2.  
  3. //WYSWIETL TUTAJ COS TAKIEGO:
  4. echo 'czy chcesz usunac';
  5. echo '<a href=\'index.php\'>[nie]</a>';
  6. echo'< a href=\"del.php?a=del&ID_Klient={$r->ID_Klient}&confirm\">[tak]</a> ';
  7.  
  8. if(isset($_GET['confirm']){
  9. mysql_query("DELETE FROM system_hotelowy.klient WHERE ID_Klient='$ID_Klient'")
  10. or die('Błąd zapytania: '.mysql_error());
  11.  
  12. echo 'Rekord został usunęty z bazy';
  13.  
  14. }
  15.  
  16. echo "</table>";
  17. echo "<td>
  18. <br /> <br />
  19. <a href=\"index.php\">STRONA GŁÓWNA</a>
  20.  
  21. </td>";
  22. }


zrób coś na podobnej zasadzie, nie gwarantuje ze jak przekliesz ten kod to zadziała.

ale zasada jest taka że:
1.wyświetl zapytanie o cheć usunięcia + linki
2. nie odsyła Cie do index
3. tak odlsyla Cie do tego samego miejsca+ jakaś zmienna w GET
4. jezeli zmienna istnieje to usuwasz dopiero wtedy
adek-
Ja robię to trochę w inny sposób i myślę że dużo prostszy... fakt nadaje się to tylko do buttonów, ale wyskakuje przyjemne okienko z zapytaniem i potwierdzeniem OK/Anuluj
  1. echo '<form class="form" action="" method="post">
  2. <input type="hidden" name="id" value="' . $wymien['id_plikow'] . '"/>
  3. <input type="submit" name="action" value="Edytuj" class="button small" />
  4. <input type="submit" name="action" value="x" onclick="return Defuse();"/>
  5. </form>';
  6. echo "<script type='text/javascript'>function Defuse() {return confirm('Czy na pewno chcesz usunąć?');}</script>\n";

tak więc dodaję w inpucie wartość onclick, a poniżej formatki wrzucam kawałeczek tego JS
BraveSoul
Cytat(adek- @ 19.01.2013, 10:42:57 ) *
Ja robię to trochę w inny sposób i myślę że dużo prostszy... fakt nadaje się to tylko do buttonów, ale wyskakuje przyjemne okienko z zapytaniem i potwierdzeniem OK/Anuluj

tak więc dodaję w inpucie wartość onclick, a poniżej formatki wrzucam kawałeczek tego JS


ok, ale gdzie dokładnie to dodajesz?
zapomniałam napisać, że jestem kompletnie zielona i nie wiem nic o php, ani o JS ani w ogóle smile.gif

dodać to na stronie usuwania?

Cytat(brzoza91 @ 18.01.2013, 22:14:06 ) *
zrób coś na podobnej zasadzie, nie gwarantuje ze jak przekliesz ten kod to zadziała.

ale zasada jest taka że:
1.wyświetl zapytanie o cheć usunięcia + linki
2. nie odsyła Cie do index
3. tak odlsyla Cie do tego samego miejsca+ jakaś zmienna w GET
4. jezeli zmienna istnieje to usuwasz dopiero wtedy


wyrzuca mi błąd:
Parse error: syntax error, unexpected '{' in C:\Program Files\xampp\htdocs\del.php on line 21

linia 21:
  1. if(isset($_GET['confirm']){


Cytat(BraveSoul @ 19.01.2013, 11:23:26 ) *
linia 21:
  1. if(isset($_GET['confirm']){


dobra, znalazłam, brakowało tylko nawiasu. mam jednak inny problem
gdy kliknę na NIE to wróci mi do strony głównej, ok, jest dobrze,
ale jak klikam na TAK to wyświetla mi się OBOK komunikatu TAK/NIE, który nie znika, napis rekord został usunięty,
ale rekord wcale nie zostaje usunięty. to nie usuwa tego rekordu z bazy...
brzoza91
  1. if($a == 'del' and !empty($ID_Klient)) {
  2.  
  3. if(isset($_GET['confirm'])){
  4. mysql_query("DELETE FROM system_hotelowy.klient WHERE ID_Klient='$ID_Klient'")
  5. or die('Błąd zapytania: '.mysql_error());
  6.  
  7. echo 'Rekord został usunęty z bazy';
  8. } else {
  9. echo 'czy chcesz usunac';
  10. echo '<a href=\'index.php\'>[nie]</a>';
  11. echo'< a href=\"del.php?a=del&ID_Klient={$r->ID_Klient}&confirm\">[tak]</a> ';
  12. }
  13.  
  14. }
BraveSoul
Cytat(brzoza91 @ 19.01.2013, 12:04:11 ) *
  1. if($a == 'del' and !empty($ID_Klient)) {
  2.  
  3. if(isset($_GET['confirm'])){
  4. mysql_query("DELETE FROM system_hotelowy.klient WHERE ID_Klient='$ID_Klient'")
  5. or die('Błąd zapytania: '.mysql_error());
  6.  
  7. echo 'Rekord został usunęty z bazy';
  8. } else {
  9. echo 'czy chcesz usunac';
  10. echo '<a href=\'index.php\'>[nie]</a>';
  11. echo'< a href=\"del.php?a=del&ID_Klient={$r->ID_Klient}&confirm\">[tak]</a> ';
  12. }
  13.  
  14. }



o dzięki, dzięki, coraz lepiej, teraz wygląda idealnie, ale nadal nie usuwa rekordu z bazy o.O

__________________________________
w sumie, nie rozumiem dlaczego nie usuwa,, nie pobiera ID na kolejnej stronie, czzy co?
bo przecież jest linia:

  1. mysql_query("DELETE FROM system_hotelowy.klient WHERE ID_Klient='$ID_Klient'")


która powinna usunąć ten rekord.. Wie ktoś?
brzoza91
bo masz zle zapytanie. wypisze Ci ID_Klient='{$r->ID_Klient}'.
a powinno wypisać Ci id_klienta(numer a nie slowo)
bo zobacz usuwasz teraz klienta o numerze id='{$r->ID_Klient}' a taki przeciez nie istnieje bo id jest numerem

spróbuj usunać te klamry i cudzyslow. probuj az zamiast '{$r->ID_Klient}' wypisze Ci tam id jako numer.
BraveSoul
ok. dzięki, pomogłeś smile.gif
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.