ďťż
Podstrony
|
telcocafeJak zrobić, aby można było ustawiać pozycje w menu (przesuwać je w górę i w dół)...Próbowałem kilku metod ale nie działają sad.gif Moja tabela z menu wygląda mniej więcej tak: ID | NAZWA | LINK | POZYCJA 1 | home | index | 1 2 | forum | forum | 2 3 | kontakt | contac | 3 Jak mogę zamienić np. pozycje 1 z pozycją 2, aby wszystko się nie posypało?? Ma ktoś jakiś prosty kod, ale miał ktoś już taki problem??? Albo jak zrobić tak, i czy to będzie działało (zamienić się pozycjami)? UPDATE tabela SET Pozycja=2 WHERE ID=1; UPDATE tabela SET Pozycja=1 WHERE ID=2; tak, w takim przypadku "zamieniasz" niejako pozycję miejscami. Jeżeli pozycje mogą być nie kolejnymi liczbami np. 1 3 4 to warto by było pozycję wyższą lub niższą do zmiany nie "zgadywać" lecz pobierać (np. "SELECT ..... WHERE id > id_do_zmiany LIMIT 1") A jakiś praktyczny kod? :/ No przecież już masz kod :-) Jeszcze tylko zostało Ci to w PHP uporządkować wg pozycji, czyli pobierasz wartość Pozycja wszystkich rekordów i pętlą for wypisujesz Nazwa WHERE Pozycja = $i, gdzie $i to zmienna sterująca w pętli for. No przecież już masz kod :-) Jeszcze tylko zostało Ci to w PHP uporządkować wg pozycji, czyli pobierasz wartość Pozycja wszystkich rekordów i pętlą for wypisujesz Nazwa WHERE Pozycja = $i, gdzie $i to zmienna sterująca w pętli for. przeciez softowanie lepiej zrobic w mysql Riklaunim, ale z tego co wiem, jak zamienie to sie zamienią... ale co będzie jak usunę??? Capellini po co to sortować? Ktoś mi podpowiedział, że przy przenoszeniu np. w górę wyciągnąć największe id nie większe od przesuwanego i tak to zamienić... (chyba to tak szło xDD ) Skrypt wywołuje linkiem: <a href='menu.php?co=move&id=$id&gdzie=up'>W góre</a> <a href='menu.php?co=move&id=$id&gdzie=down'>W dól</a> Mam taki skrypt, ale coś jest źle i nie działa :/ : if ( $co == "move" ) { $id = intval( $_GET['id'] ); baza_polacz(); $query = mysql_query("SELECT pozycja FROM menu WHERE ( id = $id )"); while ( $rowek = mysql_fetch_assoc($query)){ $pozycja_stara = $rowek['pozycja']; } if ( $gdzie == "up" ) { baza_polacz(); $query_up = mysql_query("SELECT MAX( pozycja ) AS pozycja_2 FROM menu WHERE ( pozycja < $pozycja_stara )"); if( $pozycja_2 === null ) { echo "Pozycja jest na górze"; } else { $query1 = "UPDATE menu SET pozycja = $pozycja_stara WHERE ( pozycja = $pozycja_2 )"; $query2 = "UPDATE menu SET pozycja = $pozycja_2 WHERE ( id = $id )"; } } if ( $gdzie = "down" ) { baza_polacz(); $query_down = mysql_query("SELECT MIN( pozycja ) AS pozycja_2 FROM menu WHERE ( pozycja < $pozycja_stara )"); if( $pozycja_2 === null ) { echo "Pozycja jest na dole"; } else { $query1b = "UPDATE menu SET pozycja = $pozycja_stara WHERE ( pozycja = $pozycja_2 )"; $query2b = "UPDATE menu SET pozycja = $pozycja_2 WHERE ( id = $id )"; } }} |
|||
Sitedesign by AltusUmbrae. |