Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]System Administracji Stronami, Problem z zapytaniami do aktualizacji drzewa stron
little_MASTER
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 8.12.2008

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


Witam wszystkich!
Pisze prosty system cms dla mojej szkoły.
Struktura tabeli wygląda tak:
(IMG:http://img5.imageshack.us/img5/1420/tabelav.jpg)

Jak widać pola id, id_nadrzednej, kolejnosc. Reszta to już dodatki (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

Na stronie prezentuje sie to tak:
(IMG:http://img5.imageshack.us/img5/1994/helpk.jpg)

Dezaktywowanie strony, tzn ustawianie statusu na offline działa dla strony i wszystkich podstron.

Mam problem natomiast z edycją samego położenia stron i ich kolejności.

Przykład:
Chcemy stronę o tytule abc(id=2) przenieść poniżej def (id=4) czyli byśmy musieli zamienić ich kolejności.
Pracuje nad jedną kwerendą która coś takiego zrobi (jako argument będe podawał tylko id strony która ma iść do góry), nie jest to aż tak skomplikowane,
problemem dla mnie jest przestawianie stron w głąb drzewa lub na zewnątrz.
Czyli np stronę Ostatnia (id=14) chcemy wsunąć w DDD (id=11).

Może podpowiecie jak w ogóle rozwiązać tego typy problem. Dopiero co zaczynam przygodę z cms'ami więc wolę uczyć się od najlepszych
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
little_MASTER
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 8.12.2008

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


Ok wracamy do tematu :/

Nadal męczę się z tym przenoszeniem w głąb i na zewnątrz.
Taka przerwa w temacie bo po prostu pracowałem w wakacje i jakoś nie było czasu.

  1. SELECT id FROM ksmisi_strony WHERE id_nadrzednej=(SELECT id_nadrzednej FROM ksmisi_strony WHERE id=2) AND kolejnosc<(SELECT kolejnosc FROM ksmisi_strony WHERE id=2) ORDER BY kolejnosc DESC LIMIT 1


To daje nowe id_nadrzednej, a to:

  1. SELECT IF ((SELECT kolejnosc FROM ksmisi_strony WHERE id_nadrzednej=2 ORDER BY kolejnosc DESC LIMIT 1),(SELECT kolejnosc FROM ksmisi_strony WHERE id_nadrzednej=2 ORDER BY kolejnosc DESC LIMIT 1) +1,1) AS kolejnosc


nową kolejność.

Kiedy próbuje to wszystko wrzucić w update'a to mam komunikat że nie mogę robić update i select z tej samej tabeli jednocześnie :/

Nie wiem jak się za to zabrać (IMG:style_emoticons/default/dry.gif)

Tak samo sprawa wygląda z "wyciąganiem" podstrony na zewnątrz.
Chciałbym żeby wszystko działało na jednym zapytaniu, bo dwoma lub trzema jestem w stanie to zrobić bez problemu, ale nie o to chodzi.


Co do struktury to wiem ze jest najprostsza z możliwych. Strona do której będzie to wykorzystywane będzie niewielka, max kilka stron i 2 poziomy zagnieżdżeń.

Dzięki za radę (IMG:style_emoticons/default/winksmiley.jpg)
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: 3.10.2025 - 14:23