Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Usuwanie kilku rekordów, czyli problem z checkbox'ami
ergoline
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 26.12.2008

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


Witam!

Chciałbym, mieć możliwośc usuwania kilku rekordów "za jednym zamachem" przy pomocy pól checkbox. Ogónie strona składa się z dwóch części:
1. usuwanie pojedynczego rekorku
2. usuwanie kilku rekordów

Pierwsza część działa dobrze, natomiast z drugą mam problem. Najpierw użytkownik wyszukuje rekordy (wybiera kierunek i semestr -> wyszukiwany jest numer grupy -> nr grupy zapisywany jest do tablicy -> pobrany z tablicy nr grupy jest wykorzystywany do wyszukiwania rekordów), wyświetla się tableka z wynikiem szukania, gdzie przy każdym rekordzie jest checkbox. Użytkownik zaznacza wybrane, klika "Usuń wszystkie" i ... nie działa

  1. <?php
  2.  
  3. require ("check.php");
  4.  
  5. $polaczenie = mysql_connect ("localhost", "tergoline", "123456")
  6. or die ("Nie można połączyć z serwerem baz danych");
  7. $wybor_bazy = mysql_select_db ("db_ergoline")
  8. or die ("Nie można wybrać wymaganej bazy danych");
  9.  
  10. echo '1. Proszę podać imię i nazwisko studenta:
  11. </br>
  12. <form action = "usun.php" method = "post">
  13.    <table>
  14.        <tr>
  15.            <td>Imię:</td>
  16.            <td><input type = "text" name = "imie"></td>
  17.        </tr>
  18.        <tr>
  19.            <td>Nazwisko:</td>
  20.            <td><input type = "text" name = "nazwisko"></td>
  21.        </tr>
  22.    </table>
  23.    </br>
  24.    <input type = "submit" value = "Skreśl z listy studentów">
  25.    <input type = "reset" value = "Wyczyść forumlarz">
  26. </form>';
  27.  
  28. $imie = $_POST['imie'];
  29. $nazwisko = $_POST['nazwisko'];
  30.  
  31. $usun = mysql_query ("DELETE FROM osoba WHERE (imie = '$imie' and nazwisko = '$nazwisko')")
  32. or die ("Bład przy usuwaniu rekordu");
  33.  
  34.  
  35. echo ' 2. Znajdź studenta:';
  36. echo '</br>';
  37.  
  38. echo '<form action = "usun.php" method = "post">';
  39.  
  40. $sql = mysql_query ("SELECT nazwa FROM kierunek")
  41. or die ("Bład przy pobieraniu kierunków");
  42. echo 'Kierunek: <select name = "kierunek">';
  43. while ($row = mysql_fetch_assoc($sql))
  44. {
  45.    echo '<option value = " '.$row['nazwa'].' "> '.$row['nazwa'].' </option>';
  46. }
  47. echo '</select>';
  48. echo '</br>';
  49.  
  50. $sql1 = mysql_query ("SELECT ktory FROM semestr")
  51. or die ("Błąd przy pobieraniu semestrów");
  52. echo ' Semestr: <select name = "semestr">';
  53. while ($row1 = mysql_fetch_assoc($sql1))
  54. {
  55.    echo '<option value = " '.$row1['ktory'].' "> '.$row1['ktory'].' </option>';
  56. }
  57. echo '</select>';
  58. echo '</br>';
  59.  
  60. $kierunek = $_POST['kierunek'];
  61. $semestr = $_POST['semestr'];
  62.  
  63. </br>
  64. <input type = "submit" value = "Znajdź">
  65. </form>';
  66.  
  67. echo '<form action = "usun.php" method = "post">';
  68. $grupa = mysql_query ("SELECT grupa_id FROM grupa where (kierunek = '$kierunek' and semestr = '$semestr')")
  69. or die ("Nie można pobrać ID grupy");
  70. $tabela = mysql_fetch_array($grupa)
  71. or die ("Nie można zapisać wyniku w tabeli lub nie znaleziono żadnych studentów");
  72. $znajdz  = mysql_query ("SELECT * FROM osoba where (grupa_id = ".$tabela['grupa_id'].")")
  73. or die ("Nie można znaleźć studentów o podanym ID grupy");
  74. echo '<table cellpadding = \"11\" border = 3>';
  75. echo '     <tr>
  76.        <td>ID</td>
  77.        <td>Grupa ID</td>
  78.        <td>Imię</td>
  79.        <td>Nazwisko</td>
  80.        <td>Usuń</td>
  81.    </tr>';
  82.    
  83. while ($row = mysql_fetch_array($znajdz))
  84. {
  85.    echo '<tr>';    
  86.    echo '<td>'.$row[0].'</td>';
  87.    echo '<td>'.$row[1].'</td>';
  88.    echo '<td>'.$row[2].'</td>';
  89.    echo '<td>'.$row[3].'</td>';
  90.    echo '<td> <input type = "checkbox" name = "delete['.$row['0'].']" value = "on"></td>';
  91.    echo '</tr>';
  92. }
  93. echo '</table>';
  94. echo '</br>';
  95. echo '<input type = "submit" name = "usun" value = "Usuń zaznaczone">';
  96. echo '</form>';
  97.  
  98. if ($_POST['usun'] == 'Usuń zaznaczone' and isset($_POST['delete']) and is_array($_POST['delete']))
  99. {
  100.    foreach ($_POST['delete'] as $key=>$value)
  101.    {
  102.        $q = "DELETE FROM osoba WHERE id = '{$key}';";
  103.        mysql_query($q);
  104.    }
  105. }        
  106. ?>


Gdzie popełniam błąd?

Pozdrawiam...

P.S.
Dlaczego przy pierwszym wejściu na stronę dostaję błąd "Nie można zapisać wyniku w tabeli lub nie znaleziono żadnych studentów"?
Taki sam błąd otrzymuję, gdy chcę usunąć kilka rekordów...
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 02:01