Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pozycje menu
danielv13
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 4.12.2006

Ostrzeżenie: (10%)
X----


Jak 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ą (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Moja tabela z menu wygląda mniej więcej tak:

  1. <?php
  2. ID | NAZWA  | LINK  | POZYCJA
  3. 1 | home | index | 1
  4. 2 | forum  | forum | 2
  5. 3 | kontakt | contac | 3
  6. ?>


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?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował danielv13 23.07.2007, 19:19:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


1. Musisz znać ID linku, który chcesz przemieścić, czyli odnośniki tworzysz mniej więcej w ten sposób:
Cytat
<a href="plik.php?action=move&amp;id=3&amp;direction=up"><img src="strzaleczka_w_gore.gif" alt="up" /></a>
i odczytujesz sobie ID z tablicy $_GET


2. Jeśli przesuwasz link do góry to:
- Pobierasz ID linku który ma największą liczbę w polu pozycja, ale nie większą niż pozycja przesuwanego linku.
Jeśli nie znaleziono nic, to znaczy że przesuwany link jest na samej górze i już z nim nic nie musisz robić
3. Jeśli przesuwasz link na dół to:
- Pobierasz ID linku który ma najmniejszą liczbę w polu pozycja, ale nie mniejszą niż pozycja przesuwanego linku.
Jeśli nie znaleziono nic, to znaczy że przesuwany link jest na samym dole i już z nim nic nie musisz robić


4. Gdy masz już ID linku przesuwanego oraz ID sąsiedniego linku to po prostu zamieniasz ich wartości w polu pozycja


Będą ci potrzebne: MIN(), MAX(), ORDER BY więc http://google.pl i piszesz sobie gotowca ;]

Ten post edytował Kicok 24.07.2007, 08:02:47
Go to the top of the page
+Quote Post
danielv13
post
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 4.12.2006

Ostrzeżenie: (10%)
X----


Cytat(Kicok @ 24.07.2007, 09:01:40 ) *
- Pobierasz ID linku który ma największą liczbę w polu pozycja, ale nie większą niż pozycja przesuwanego linku.
Jeśli nie znaleziono nic, to znaczy że przesuwany link jest na samej górze i już z nim nic nie musisz robić


I już problem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)


Mam pętelke i tak są ustawione linki:
  1. <?php
  2. while ( $row = mysql_fetch_assoc($w) ) {
  3.  
  4. $id = $row['id'];
  5. $title = $row['nazwa'];
  6. $pozycja = $row['pozycja'];
  7.  
  8. echo (" $title <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> | 
  9. <a href='menu.php?co=del&id=$id'>Usun</a> <a href='menu.php?co=edit&id=$id'>Edytuj</a><br>");
  10. }
  11. ?>


Przykład przesuniecia w góre:

  1. <?php
  2. if ( $co == "move" ) {
  3.  
  4. $id = $_GET['id'];
  5.  
  6. if ( $gdzie == "up" ) {
  7.  
  8. baza_polacz();
  9.  
  10. $w = mysql_query("SELECT MAX(pozcyja)<$id AS poz FROM menu");
  11. ?>

Jak ma wygladac to zapytanie bo w google to sie ch** dowiedziałem (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) ?
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: 6.10.2025 - 01:11