Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Przeniesienie kategorii w drzewku
Forum PHP.pl > Forum > Przedszkole
The Night Shadow
Funkcja poniżej ma za zadanie przenieś wybraną kategorię w drzewku do innej kategorii. Ma sprawdzić, czy przypadkiem, kategoria dolcelowa nie jest jej podkategorią, i ewentualnie wygenerować błędy. Niestety nie robi tego. Gdzie jest błąd?

  1. <?php
  2. if ($option=='przenosiny')
  3. {
  4.  
  5. // Pobieranie id edytowanej kategorii i id matki
  6.  
  7. $id_edytowanej = strip_tags(htmlspecialchars( mysql_escape_string(trim($_POST["id"])), ENT_QUOTES));
  8. $id_matki = strip_tags(htmlspecialchars( mysql_escape_string(trim($_POST["nowe_id"])), ENT_QUOTES));
  9.  
  10. // Sprawdzanie, czy id matki nie jest równe id oraz czy istnieje kategoria o podan
    ym id_matki
  11.  
  12. $spr = mysql_query("SELECT * FROM galerie WHERE id='$id_matki'");
  13. if (($spr or $id_matki==0) and $id_edytowanej<>$id_matki)
  14. {
  15.  
  16. // Funkcja sprawdzająca, czy któraś z podkategorii jest ta, którą wybrał użytkowni
    k. Zmiana id_matki w tej kategorii miałaby nastąpić tylko w przypadku braku błędó
    w.
  17.  
  18. function sprawdzanie($nr)
  19. {
  20. $poszukiwanie_kategorii = mysql_query("SELECT * FROM galerie WHERE id_matki='$nr'");
  21. while ($poszukiwanie_kategorii and $wiersz = mysql_fetch_assoc($poszukiwanie_kategorii))
  22. {
  23.  
  24. if ($wiersz["id"]==$id_matki) 
  25. {
  26. $blad++;
  27. }
  28. sprawdzanie($wiersz["id"]);
  29. }
  30. }
  31. sprawdzanie($id_edytowanej);
  32. if ($blad=="")
  33. {
  34. $przenoszenie = mysql_query("UPDATE galerie SET id_matki='$id_matki' WHERE id='$id_edytowanej'");
  35. }
  36. }
  37. else
  38. {
  39. echo 
  40. "BLABLA";
  41. }
  42. }
  43. ?>
scanner
A jakies komunikaty błędów czy inne efekty działania?
Bo tu nie ma wróżek...
The Night Shadow
Nie... tzn. w momencie kiedy mam taki układ kategorii

kat 1
......podkat 1
......podkat 2
............costam 1
............costam 2

Chcę przenieść podkat 2 do costam 2, teoretycznie skypt powinien zabronić, a mimo to kategoria JEST przenoszona i o to chodzi.
scanner
A możesz mi powiedzieć co chcesz osiągnąć, pisząc kod zbudowany tak jak Ty napisałeś w liniach 13 do 18?
I w którym momencie sprawdzasz, czy kategoria docelowa nie jest dzieckiem kategorii przenoszonej?
The Night Shadow
Drzewko jest wyświetlane w zapętlonej funkcji. Najpierw wyświetlane są pierwsze głowne gałęzie i dopiero potem kolejne podgałezie. Jesli kategorie przeniosę do jej podkategorii przestanie ona być wyświetlana. I ten skrypt ma sprawdzać, czy wybrane id forum do przeniesienia jest poza jego podkategoriami. A konkretniej w przykładzie poniżęj czy kategoria 1 nie należy do podkategorii 1 i 2

kategoria 1
....podkategoria 1
....podkategorai 2
scanner
Jeszcze raz.
Linie od 13tej do 18tej w podanym przez Ciebie listingu. Co to do cholery jest za składnia?

1. Zacznij od nauki tego, jak umieszczać funkcje w kodzie.
2. $blad w funkcji jest widoczna tylko wewnątrz niej. Polecam rozdział "Zasięg zmiennych" z manuala. A skoro jest to zmienna zawarta w funkcji, to nie jest ona widoczna poza nią. Musiałbyś uczynić ja globalną (co jest błędem programistycznym) lub zwrócić jej wartość po zakończeniu wszystkich pętli.

Podsumowując, musisz poczytać o:
Zasięgu zmiennych, funkcjach i Rekurencji
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.