dk1342
24.05.2009, 17:32:31
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
24.05.2009, 17:34:22
w mysql tabela menu -> link, nazwa, pozycja
dk1342
24.05.2009, 17:41:42
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
24.05.2009, 17:55:14
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
24.05.2009, 18:03:37
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
24.05.2009, 18:26:54
Cytat
3 ||
http://cos3.pl || cos 3
4 ||
http://cos4.pl || cos 4
<?php
$res = mysql_query('SELECT * FROM `menu` WHERE `id`="4" LIMIT 1');
$tmp = $res;
$res = mysql_query('SELECT * FROM `menu` WHERE `id`="5" LIMIT 1');
mysql_query('UPDATE `menu` SET `adres`="'. $res['adres'] .'", `nazwa`="'. $res['nazwa'] .'" WHERE `id`="4" LIMIT 1'); mysql_query('UPDATE `menu` SET `adres`="'. $tmp['adres'] .'", `nazwa`="'. $tmp['nazwa']" WHERE `id`="5" LIMIT 1'); ?>
Jak widzisz zrobiłem to bez 'pozycji'.
Pozdrawiam.
dk1342
24.05.2009, 18:30:56
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
24.05.2009, 18:35:52
np zamiast danych 2 id dajesz
$res = mysql_query('SELECT * FROM `menu` WHERE `id`>"mojeid" LIMIT 1');
i wystarczy 1 id
kkuba
24.05.2009, 18:36:09
Naprowadzę Cię.
Oto fragment kodu z mojego cmsa
<?php
$res = mysql_query('SELECT * FROM `menu` WHERE `id`="'. $id .'" LIMIT 1'); $res2 = mysql_query('SELECT * FROM `menu` WHERE `id`<'. $id .' ORDER BY `id` ASC'); ?>
Teraz już powinieneś sobie poradzić.
dk1342
24.05.2009, 18:52:08
Poradziłem sobie, dzięki za naprowadzenie
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.