Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie paru rekorów jednocześnie
Forum PHP.pl > Forum > Bazy danych > MySQL
dela
Chciałbym usunąć parę rekordów jednocześnie. Jak to zrobić?

Id jest wysyłane w formie GET: http://nazwastrony.pl/del.php?id=6&id=8&id=12

Zapytanie do bazy danych wygląda tak:

  1. $id = $_GET['id'];
  2.  
  3. $Zapytanie = "DELETE FROM `test` WHERE id = '$id'";
  4. $Wynik = mysql_query($Zapytanie);


Z góry dzięki!
Mchl
WHERE id = 1 OR id = 2 OR id =3 ...

albo

WHERE id IN (1,2,3,...)

Ale w URLu musisz podawać zmienne inaczej.
Np
del.php?id=1,2,3
I potem rozbić to przy pomocy explode()
dela
Najlepiej było by w takiej formie: WHERE id IN (1,2,3,...) ale w jaki sposób zrobić to żeby id było zapisywane w takiej formie: del.php?id=1,2,3?
Mchl
A kto wytwarza tego urla?
dela
  1. while ($Dane = mysql_fetch_array($Wynik, MYSQL_ASSOC))
  2. {
  3. print ('<input type="checkbox" name="id" value="'.$Dane['id'].'" id="pole1" />');
  4.  
  5. print ('<label for="pole1">'.$Replace_Dane2.'</label><br />');
  6. }
Mchl
Możesz spróbować tak:
  1. while ($Dane = mysql_fetch_array($Wynik, MYSQL_ASSOC))
  2. {
  3. print ('<input type="checkbox" name="id[]" value="'.$Dane['id'].'" id="pole1" />');
  4. print ('<label for="pole1">'.$Replace_Dane2.'</label><br />');
  5. }


W ten sposób prześlesz przez GET tablicę id.
Pilsener
I po co przez GET? Formularze wysyła się POSTem, robisz z tego ładną tablicę, tak jak podał kolega wyżej. Potem wystarczy:
  1. $id_do_kasacji = join(",",$_POST['id']);
- i masz po przecinku wszystkie identyfikatory, pozostaje wkleić do IN() w zapytaniu DELETE.
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.