Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Usuwania elementu z drzewa
Forum PHP.pl > Forum > Przedszkole
kamilo818
Witam,
mój problem polega na tym, że chce usunąć element z drzewa kategorii razem z dziećmi.
Aktualny mój kod działa, ale nie podoba mi się to, że usuwa każdy element pojedynczo przez co tworzy się dużo zapytań do bazy
  1. function do_usunięcia($parentID, $tab)
  2. {
  3. mysql_query("DELETE FROM kategorie WHERE id='$parentID'");
  4. if (!is_array($tab[$parentID])) return;
  5. foreach ($tab[$parentID] as $element) {
  6. do_usunięcia($element['id'], $tab);
  7. }
  8.  
  9. }


Chcialbym zeby za 1 zapytaniem się wszytko usuwało. W założeniu funkcja ma zbierać wszystkie ID do usuniecia do zmiennej i poźniej w 1 zapytaniu je usuwać.
No i tu utknąłem. Mam cos takiego ale nie działa poprawnie :/

  1. function do_usunięcia($parentID, $tab)
  2. {
  3. $usun[] = $parentID;
  4. if (!is_array($tab[$parentID])) return;
  5. foreach ($tab[$parentID] as $element) {
  6. do_usunięcia($element['id'], $tab);
  7. $usun[] =$element['id'];
  8. }
  9.  
  10. $string=','.implode(',',$usun);
  11.  
  12. mysql_query("DELETE FROM kategorie WHERE id IN ($string)");
  13.  
  14.  
  15. }
Damonsson
  1. $string= implode(',',$usun);
raczej tak
kamilo818
facepalmxd.gif

Dzięki.
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.