Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem, rozumowanie, kolejnosc!?
kicaj
post
Post #1





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Metoda w klasie...
  1. <?php
  2. function Move( $lft, $rgt, $parent_rgt ) 
  3. {
  4.         // Wybierz `pozycje` do przeniesienia
  5.         // Wieprzowina: lft = 5, rgt = 6
  6.         $this -> queryResults( &#092;"SELECT title FROM tree2 WHERE lft = '\".$lft.\"' AND rgt = '\".$rgt.\"'\" );
  7.         $row = $this -> fetchArray();
  8.         
  9.         // Wybierz nowego `rodzica` `pozycji` do przeniesienia
  10.         // Mieso: rgt = 11
  11.         $this -> queryResults( &#092;"SELECT title FROM tree2 WHERE rgt = '\".$parent_rgt.\"'\" );
  12.         $row_parent = $this -> fetchArray();
  13.         
  14.         // Wybierz najwiekszy `rgt`, gdzie
  15.         $this -> queryResults( &#092;"SELECT MAX(rgt) AS rgt FROM tree2 WHERE parent = '\".$row_parent['title'].\"'\" );
  16.         $row_max = $this -> fetchArray();
  17.         
  18.         $this -> queryResults( &#092;"UPDATE tree2 SET rgt = (rgt + 2) WHERE rgt >= ($row_max[rgt] + 1)\" );
  19.  
  20.         // Dodaje nowa `pozycje` w ustalone pod ustalone miejsce
  21.         $this -> queryResults( &#092;"INSERT INTO tree2 SET parent = '\".$row_parent['title'].\"', 
  22. title = '\".$row['title'].\"', lft = (&#092;".$row_max['rgt'].\" + 1), rgt = (\".$row_max['rgt'].\" + 2)\" );
  23.  
  24.         // Usuwa `pozycje` ze starego miejsca
  25.         $this -> queryResults( &#092;"DELETE FROM tree2 WHERE lft = '\".$lft.\"' AND rgt = '\".$rgt.\"'\" );
  26.  
  27.         $this -> queryResults( &#092;"UPDATE tree2 SET rgt = (rgt - 2) WHERE rgt > '\".$rgt.\"'\" );        
  28.         $this -> queryResults( &#092;"UPDATE tree2 SET lft = (lft - 2) WHERE lft > '\".$lft.\"'\" );        
  29. ?>
Stosuje tak:
  1. <?php
  2. $moveTree = new Trees;
  3. $moveTree -> Move( lft_pozycji_do_przesuniecia, rgt_pozycji_do_przesuniecia, parent_rgt_nowa_kategoria(rodzic)_pozycji );
  4. ?>
Wszystkie jest dobrze jak podam np. 5, 6, 11, ale jesli chce podac 7, 8, 5 (przesuniecie jakby w druga strone) to sie sypie.
Problem chyba tkwi w kolejnosci zapytan SQL. Nie wiem dlaczego w przypadku gdy ostatni argument jest mniejszy od pozostalych to sie sypie...

Mam nadzieje ze mnie zrozumieliscie. Jak cos to pytac! Siedze nad tym juz dobre pare godzin...

Ten post edytował kicaj_ 9.07.2004, 02:10:51
Go to the top of the page
+Quote Post

Posty w temacie
- kicaj   problem, rozumowanie, kolejnosc!?   9.07.2004, 02:08:00


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: 27.09.2025 - 01:57