Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Tabela + usuwanie, Proszę o pomoc
interp124
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.09.2011

Ostrzeżenie: (10%)
X----


Witam, szukałem na wielu stronach, na tej także ale nie mogę rozwiązać swojego problemu. (IMG:style_emoticons/default/ohno-smiley.gif)

Daje wam sam wygląd tabeli
  1. <?php
  2. echo "<table>";
  3. echo "<form>";
  4. echo "<tr>";
  5. echo "<td>Nazwa przedmiotu</td>";
  6. /*echo "<td>Przycisk usuń</td>";*/
  7. echo "</tr>";
  8. /*pętla*/ {
  9. echo "<tr>";
  10. echo "<td>row['subject_name']</td>";
  11. /*echo "<td>checkbox</td>";*/
  12. echo "<tr>";
  13. }
  14. echo "</form>";
  15. echo "</table>";
  16. ?>


Chciałbym, aby po zaznaczeniu checkbox-ów i kliknięciu przycisku usuń, zostały usunięte wiersze odpowiadające włączonym checkboxom.

Klika danych z mojej bazy:
Nazwa tabeli: subjects
subject_id INT NOT NULL AUTO_INCREMENT
subject_name TEXT NOT NULL

(IMG:style_emoticons/default/wstydnis.gif)

//Rozwiązane jakby ktoś potrzebował
  1. <?php
  2. require('connect.php');
  3. mysql_select_db("tempus", $connect);
  4. $br = "<br>";
  5. if($_POST['usun'] AND $_POST['check']) {
  6. $sql5 = 'DELETE FROM `subjects` WHERE subject_id in('.implode(',',$_POST['check']).')';
  7. mysql_query($sql5) or die('BŁĄD:'.mysql_error());
  8. }
  9. $wynik = mysql_query("SELECT * FROM `subjects`") or die('Błąd zapytania');
  10. $br = "<br>";
  11. if(mysql_num_rows($wynik) > 0) {
  12. echo "<form method=post>";
  13. echo "<table>";
  14. echo "<tr>";
  15. echo "</tr>";
  16. while($row = mysql_fetch_assoc($wynik)) {
  17. echo "<tr>";
  18. $nazwa_przedmiotu = $row['subject_name'];
  19. $identyfikator_przedmiotu = $row['subject_id'];
  20. echo "<td>$nazwa_przedmiotu</td>";
  21. echo "<td><input type='checkbox' name='check[]' value='$identyfikator_przedmiotu'></td>";
  22. echo "</tr>";
  23. }
  24. echo "<tr><td><input type='submit' name='usun' value='Usuń'></td></tr>";
  25. echo "</table>";
  26. echo "</form>";
  27. }
  28. ?>


Ten post edytował interp124 30.09.2011, 10:30:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





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




W petli generujesz swoje checkboxy. Jak value dla takiego checkboxa zapodajesz ID rekordu. Jako NAME checkbox nadajesz nazwę tablicową czyli nazwa[]

W ten sposób po zaznaczeniu checkboxów postem zostanie wysłana tablica zaznaczonych checkboxów pod indeksem nazwa
print_r($_POST['nazwa']);

Kasowanie jest banalnie proste:
$sql = 'delete from tabela where ID in ('.implode(',',$_POST['nazwa']).')';

Musisz oczywiście sprawdzać, czy cokolwiek zostało wybrane. Jak nic nie wybierzesz, to $_POST['nazwa'] nie istnieje.
O standardowych zabezpieczeniach przed sqlinjection już nie będę pisał.
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: 9.10.2025 - 16:46