Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Usuwania elementu z drzewa
kamilo818
post 7.10.2014, 09:50:09
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


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. }
Go to the top of the page
+Quote Post
Damonsson
post 7.10.2014, 10:14:06
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


  1. $string= implode(',',$usun);
raczej tak
Go to the top of the page
+Quote Post
kamilo818
post 7.10.2014, 10:22:10
Post #3





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


facepalmxd.gif

Dzięki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:55