Jest taki przykładowy skrypt, który usuwa rekord z listy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Gitarowe wojny - Usuń wynik</title>
  7. <link rel="stylesheet" type="text/css" href="style.css" />
  8. </head>
  9. <body>
  10. <h2>Gitarowe wojny - Usuń wynik</h2>
  11. <?php
  12. require_once('appvars.php');
  13. require_once('connectvars.php');
  14. if (isset($_GET['id']) && isset($_GET['date']) && isset($_GET['name']) && isset($_GET['score']) && isset($_GET['screenshot'])) {
  15. // Pobieranie danych z tablicy GET.
  16. $id = $_GET['id'];
  17. $date = $_GET['date'];
  18. $name = $_GET['name'];
  19. $score = $_GET['score'];
  20. $screenshot = $_GET['screenshot'];
  21. }
  22.  
  23. else if (isset($_POST['id']) && isset($_POST['name']) && isset($_POST['score'])) {
  24. // Pobieranie danych z tablicy POST.
  25. $id = $_POST['id'];
  26. $name = $_POST['name'];
  27. $score = $_POST['score'];
  28. }
  29.  
  30. else {
  31. echo '<p class="error">Nie podano wyniku do usunięcia.</p>';
  32. }
  33.  
  34. if (isset($_POST['submit'])) {
  35. if ($_POST['confirm'] == 'Yes') {
  36. // Usuwanie pliku graficznego ze zrzutem z serwera.
  37. @unlink(GW_UPLOADPATH . $screenshot);
  38. // Łączenie się z bazą danych.
  39. $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  40.  
  41. // Usuwanie danych związanych z wynikiem z bazy.
  42. $query = "DELETE FROM guitarwars WHERE id = $id LIMIT 1";
  43. mysqli_query($dbc, $query);
  44. mysqli_close($dbc);
  45.  
  46. // Potwierdzanie usunięcia wyniku.
  47. echo '<p>Usunięto wynik ' . $score . ' uzyskany przez ' . $name . '.';
  48. }
  49. else {
  50. echo '<p class="error">Nie usunięto wyniku.</p>';
  51. }
  52.  
  53. }
  54.  
  55. else if (isset( $id ) && isset( $name ) && isset( $date ) &&
  56. isset($score) && isset($screenshot)) {
  57. echo '<p>Na pewno chcesz usunąć poniższy wynik?</p>';
  58. echo '<p><strong>Imię i nazwisko: </strong>' . $name . '<br /><strong>Data:
  59. </strong>'. $date . '<br /><strong>Wynik: </strong>' . $score . '</p>';
  60. echo '<form method="post" action="removescore.php">';
  61. echo '<input type="radio" name="confirm" value="Yes" /> Tak ';
  62. echo '<input type="radio" name="confirm" value="No" checked="checked" /> Nie
  63. <br />';
  64. echo '<input type="submit" value="Wyślij" name="submit" />';
  65. echo '<input type="hidden" name= "id" value="' . $id . '" />';
  66. echo '<input type="hidden" name="name" value="' . $name . '" />';
  67. echo '<input type="hidden" name="score" value="' . $score . '" />';
  68. echo '</form>';
  69. }
  70. echo '<p><a href= "admin.php" >&lt;&lt; Wróć do strony administracyjnej</a></p>';
  71. ?>
  72. </body>
  73. </html>


Na początku sprawdza poprawność $id, $date i itd za pomocą GET, jeśli to nie metoda GET to sprawdza dalej za pomocą POST, tak?

Nie lubię else if i jakoś ciężko zrozumieć, bo jak nie ma else w if POST, to wyświetla komunikat Nie podano wyniku do usunięcia - dlaczego tak jest?

co daje else w "else if (isset( $id ) && isset( $name ) && isset( $date ) &&isset($score) && isset($screenshot)) {", bo
działa tak samo bez else czyli
"if (isset( $id ) && isset( $name ) && isset( $date ) && isset($score) && isset($screenshot)) {"