Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] Menu - pozycja
Forum PHP.pl > Forum > Przedszkole
dk1342
Witam, robie sobie menu do mojego mini cms, i nie za bardzo wiem jak zrobić to że można przesuwać linki w górę/dół
Jeśli chodzi o wykonanie to nie szukam gotowców, chce tylko wypowiedzi/podpowiedzi na ten temat bo na razie nie za bardzo wiem jak za to się zabrać.
Spawnm
w mysql tabela menu -> link, nazwa, pozycja
dk1342
tak wiem mam link, i nazwa, teraz własnie stworzyłem pozycja i rozumiem że będą tam wartości int, tylko teraz dodać w zapytaniu ORDER by pozycja ? ok ale co zmienianiem tych pozycji ? tak żebym w panelu admina miał liste tych wszystkich linków (to umiem) i obok strzałki w górę i w dół i jak się (to nie za bardzo wiem jak)
Spawnm
dajesz link-strzałkę z id pole które ma być przesunięte , potem w mysql zamieniasz miejscami id z linka z id większym lub mniejszym , w zależności czy chcesz w górę czy w duł
dk1342
kurczę nie umiem tego pojąć

tabela:
ID || ADRES || NAZWA || POZYCJA
0 || http://forum.php.pl || Forum php || 0
1 || http://cos1.pl || cos 1 || 1
2 || http://cos2.pl || cos 2 || 2
4 || http://cos3.pl || cos 3 || 3
3 || http://cos4.pl || cos 4 || 4
5 || http://cos5.pl || cos 5 || 5

i teraz jak by wyglądała ta zmiana pod względem php
np. jak bym chciał przesunąć link 3 do góry, a 4 na doł
kkuba
Cytat
3 || http://cos3.pl || cos 3
4 || http://cos4.pl || cos 4




  1. <?php
  2. $res = mysql_query('SELECT * FROM `menu` WHERE `id`="4" LIMIT 1');
  3. $res = mysql_fetch_assoc($res);
  4.  
  5. $tmp = $res;
  6.  
  7. $res = mysql_query('SELECT * FROM `menu` WHERE `id`="5" LIMIT 1');
  8. $res = mysql_fetch_assoc($res);
  9.  
  10. mysql_query('UPDATE `menu` SET `adres`="'. $res['adres'] .'", `nazwa`="'. $res['nazwa'] .'" WHERE `id`="4" LIMIT 1');
  11. mysql_query('UPDATE `menu` SET `adres`="'. $tmp['adres'] .'", `nazwa`="'. $tmp['nazwa']" WHERE `id`="5" LIMIT 1');
  12. ?>


Jak widzisz zrobiłem to bez 'pozycji'.

Pozdrawiam.
dk1342
no dobra ale do tego muszę znać id oby dwóch rekordów, id rekordu które chce przesunąć jest bardzo prosto, ale co z id rekordu wyżej/niżej ?

kkuba pozdro
Spawnm
np zamiast danych 2 id dajesz
$res = mysql_query('SELECT * FROM `menu` WHERE `id`>"mojeid" LIMIT 1');
i wystarczy 1 id smile.gif
kkuba
Naprowadzę Cię.

Oto fragment kodu z mojego cmsa

  1. <?php
  2. $res = mysql_query('SELECT * FROM `menu` WHERE `id`="'. $id .'" LIMIT 1');
  3. $res2 = mysql_query('SELECT * FROM `menu` WHERE `id`<'. $id .' ORDER BY `id` ASC');
  4. ?>


Teraz już powinieneś sobie poradzić.
dk1342
Poradziłem sobie, dzięki za naprowadzenie smile.gif
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.