Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie treści formularza zapisanego w bazie
Forum PHP.pl > Forum > Przedszkole
pdg1264
Witam mam problem zrobiłem skrypt zapisujący dane z formularza do bazy danych i chcę teraz dodać że po kliknięciu przycisku się to usunie ale coś mi nie działa

Index.php
  1. <?php
  2. $con=mysqli_connect("xx","xx","xx","xx");
  3. // Check connection
  4. if (mysqli_connect_errno()) {
  5. echo "Błąd podczas łączenia z bazą danych: " . mysqli_connect_error();
  6. }
  7.  
  8. $result = mysqli_query($con,"SELECT * FROM Lokalizacja");
  9.  
  10. echo "<table border='1' width='100%'>
  11. <tr>
  12. <th><form action=insert.php method=post></th>
  13. <th>Nick: <input type=text name=Nick maxlength=20 size=20></th>
  14. <th>Panstwo: <input type=text name=Panstwo maxlength=20 size=20></th>
  15. <th>Miasto: <input type=text name=Miasto maxlength=20 size=20><input type=submit></form></th>
  16. </tr>
  17.  
  18. <tr>
  19. <th>ID</th>
  20. <th>Nick</th>
  21. <th>Panstwo</th>
  22. <th>Miasto</th>
  23. </tr>";
  24.  
  25. while($row = mysqli_fetch_array($result)) {
  26. echo "<tr>";
  27. echo "<td width='5%'>" . $row['ID'] . "</td>";
  28. echo "<td width='30%'>" . $row['Nick'] . "</td>";
  29. echo "<td width='30%'>" . $row['Panstwo'] . "</td>";
  30. echo "<td width='30%'>" . $row['Miasto'] . "</td>";
  31. echo "<td width='5%'><form action=delete.php><input type=button value=Usun></form></td>";
  32. echo "</tr>";
  33. }
  34.  
  35. echo "</table>";
  36.  
  37.  
  38. mysqli_close($con);
  39. ?>


insert.php

  1. <?php
  2. $con=mysqli_connect("xx","xx","xx","xx");
  3. // Check connection
  4. if (mysqli_connect_errno()) {
  5. echo "Błąd podczas łączenia z bazą danych: " . mysqli_connect_error();
  6. }
  7.  
  8. // escape variables for security
  9. $Nick = mysqli_real_escape_string($con, $_POST['Nick']);
  10. $Panstwo = mysqli_real_escape_string($con, $_POST['Panstwo']);
  11. $Miasto = mysqli_real_escape_string($con, $_POST['Miasto']);
  12.  
  13. $sql="INSERT INTO Lokalizacja (Nick, Panstwo, Miasto)
  14. VALUES ('$Nick', '$Panstwo', '$Miasto')";
  15.  
  16. if (!mysqli_query($con,$sql)) {
  17. die('Error: ' . mysqli_error($con));
  18. }
  19. echo "Dodano Pomyslnie";
  20.  
  21. mysqli_close($con);
  22. ?>


delete.php
  1. <?php
  2. $con=mysqli_connect("xx","xx","xx","xx");
  3. // Check connection
  4. if (mysqli_connect_errno()) {
  5. echo "Błąd podczas łączenia z bazą danych: " . mysqli_connect_error();
  6. }
  7. $ID = mysqli_real_escape_string($con, $_POST['ID']);
  8. $Nick = mysqli_real_escape_string($con, $_POST['Nick']);
  9. $Panstwo = mysqli_real_escape_string($con, $_POST['Panstwo']);
  10. $Miasto = mysqli_real_escape_string($con, $_POST['Miasto']);
  11.  
  12. mysqli_query($con,"DELETE FROM Lokalizacja WHERE ID='$ID', Nick='$Nick', Panstwo='$Panstwo', Miasto='$Miasto' ");
  13.  
  14. mysqli_close($con);
  15. ?>


Mógłby ktoś napisać jak zrobić by to działało ?
irekk
w index.php:
  1. echo "<td width='5%'><form action=delete.php?ID={$row['ID']}><input type=button value=Usun></form></td>";


w delete.php:
  1. mysqli_query($con,"DELETE FROM Lokalizacja WHERE ID=".intval($_GET['ID']));
pdg1264
Nie działa
Jak klikam "usuń" to nic się nie dzieje a dane dalej zostają
irekk
Ah, już widzę.

  1. <form action=delete.php?ID={$row['ID']}><input type=button value=Usun></form>
Zastosowałeś input[type=button], zmień na input[type=submit], a najlepiej na linka:
  1. <a=\"delete.php?ID={$row['ID']}\">Usun</a>
pdg1264
Teraz wywala błędy

  1. Notice: Undefined index: ID in C:\xampp\htdocs\delete.php on line 7
  2.  
  3. Notice: Undefined index: Nick in C:\xampp\htdocs\delete.php on line 8
  4.  
  5. Notice: Undefined index: Panstwo in C:\xampp\htdocs\delete.php on line 9
  6.  
  7. Notice: Undefined index: Miasto in C:\xampp\htdocs\delete.php on line 10
  8.  
  9. Notice: Undefined index: ID in C:\xampp\htdocs\delete.php on line 12
nospor
1) Dane wysylasz GETem wiec masz ich szukac w GET a nie POST.
2) Skoro wysylasz tylko ID to i tylko ID masz odbierac... to chyba logiczne. A nie ty odbierasz całą masę innych rzeczy.
3) Do usuwania potrzebne jest tylko ID. Cała masa smieci jak miasto czy kraj itp są totalnie zbędne do usuwania
4) Przenosze na przedszkole
pdg1264
zmieniłem na $_GET i dalej błędy są
nospor
DAlej te same? Toz ci mowilem, ze masz to wszystko wywalic, bo niepotrzebnie to pobierasz :/
pdg1264
Tak te same błędy

delete.php
  1. <?php
  2. $con=mysqli_connect("xx","xx","xx","xx");
  3. // Check connection
  4. if (mysqli_connect_errno()) {
  5. echo "Błąd podczas łączenia z bazą danych: " . mysqli_connect_error();
  6. }
  7. $ID = mysqli_real_escape_string($con, $_GET['ID']);
  8.  
  9. mysqli_query($con,"DELETE FROM Lokalizacja WHERE ID=".intval($_GET['ID']));
  10.  
  11.  
  12. mysqli_close($con);
  13. ?>



  1. Notice: Undefined index: ID in C:\xampp\htdocs\delete.php on line 7
  2.  
  3. Notice: Undefined index: ID in C:\xampp\htdocs\delete.php on line 9
nospor
A zrobiles jak ci kazano?
<a=\"delete.php?ID={$row['ID']}\">Usun</a>
pdg1264
To w tedy nie działa, nie mogę kliknąć "usun".
nospor
POkaz kod bo pewnie znowu cos naknociles
pdg1264
Bardzo prawdopodobne

  1. <html>
  2. <head>
  3. <link rel="Stylesheat" type="text/css" href="style.css">
  4. </head>
  5. <body>
  6. <?php
  7. $con=mysqli_connect("xx","xx","xx","xx");
  8. // Check connection
  9. if (mysqli_connect_errno()) {
  10. echo "Błąd podczas łączenia z bazą danych: " . mysqli_connect_error();
  11. }
  12.  
  13. $result = mysqli_query($con,"SELECT * FROM Lokalizacja");
  14.  
  15. echo "<table border='1' width='100%'>
  16. <tr>
  17. <th><form action=insert.php method=post></th>
  18. <th>Nick: <input type=text name=Nick maxlength=20 size=20></th>
  19. <th>Panstwo: <input type=text name=Panstwo maxlength=20 size=20></th>
  20. <th>Miasto: <input type=text name=Miasto maxlength=20 size=20><input type=submit></form></th>
  21. </tr>
  22.  
  23. <tr>
  24. <th>ID</th>
  25. <th>Nick</th>
  26. <th>Panstwo</th>
  27. <th>Miasto</th>
  28. </tr>";
  29.  
  30. while($row = mysqli_fetch_array($result)) {
  31. echo "<tr>";
  32. echo "<td width='5%'>" . $row['ID'] . "</td>";
  33. echo "<td width='30%'>" . $row['Nick'] . "</td>";
  34. echo "<td width='30%'>" . $row['Panstwo'] . "</td>";
  35. echo "<td width='30%'>" . $row['Miasto'] . "</td>";
  36. echo "<td width='5%'><a=\"delete.php?ID={$row['ID']}\">Usun</a></td>";
  37. echo "</tr>";
  38. }
  39.  
  40. echo "</table>";
  41.  
  42.  
  43. mysqli_close($con);
  44. ?>
  45. </body>
  46. </html>
nospor
No tak to jest jak sie bezmyslnie kopiuje.... Naprawde nie znasz podstaw HTML i nie wiesz jak wygladaja poprawne linki?

Tak ma byc:
<a href=\"delete.php?ID={$row['ID']}\">Usun</a>
pdg1264
Nie przyuważyłem tego facepalmxd.gif

Dziękuję bardzo za pomoc, już działa. Teraz będę kombinował z aktualizacją.

Można zamknąć temat.

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