Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]skrypt zarzadzania menu
Forum PHP.pl > Forum > Przedszkole
tog
witam
chce napisac skrypt ktory potrafi edytowac pozycje w menu jak i je przesuwac gora/gol, oraz kasowac

i z przesuwaniem wlasnie mam problem
probowalem na dziesiatki sposobow i nic z tego nie wychodzi

zrobilem to w ten sposob, ze w bazie mam kolumny 'nazwa' 'adres' 'pozycja' i 'id'
menu jest sortowane po 'pozycja'
i to chcialbym podmieniac, tzn jak link ma pozycja=5 i chce go dac w gore to zmieniam na pozycja=4 a ten z pozycja=4 na pozycja=5

jak to rozwiaze to widze kolejny problem - id po kasacji wiersza
ale nie wazne... poki co nie moge sobie poradzic z tym podmienianiem
lessi
To się na siłę da zrobić. Ale tobie nie wychodziło ponieważ chciałeś żeby przez chwilę były 2 takie same id. Musiałbyś zostawić puste id=0. Wtedy jak chcesz z poz 5 na 4 to musisz zmienić 4 na 0 potem z 5 na 4 a na koniec z 0 na 5.
Ale także z chęcią czekam na inny sposób.
tog
probowalem najpierw obie wartosci przypisac do zmiennych a pozniej popodstawiac
stad id i pozycja dodatkowo
ale jakbym nei probowal to mi nei wychodzilo, albo sie platalem, albo cos jeszcze jest zle

w kazdym razie
zaraz sprobuje z 0 winksmiley.jpg

E: dziala
dzieki wielkie winksmiley.jpg

a tak swoja droga to znow cos pokrecilem i nie od razu dzialalo ^^
Meares
Może i troszkę odświeżę, ale wydaje mi się, że mogę troszkę pomóc osobom, które też próbują coś takiego zrobić, a są bardzo początkujące w PHP/MySQL.

Na początek musimy mieć tabelę w bazie danych:
Kod
+----+---------+-----------+----------------------+
| id | kolejka | nazwa     | adres                |
+----+---------+-----------+----------------------+
|  1 |       1 | Index     | index.php            |
|  2 |       4 | MMOCenter | http://mmocenter.pl/ |
|  3 |       2 | Newsy     | newsy.php            |
|  4 |       3 | Kontakt   | kontakt.php          |
+----+---------+-----------+----------------------+


Taka stryktura pozwoli nam na sortowanie według kolejki, a tego właśnie chcemy. Właściwie wszystko wykona przez nas zapytanie:
  1. SELECT * FROM `ListaMenu` ORDER BY `kolejka` ASC;

Zapewne już wiadomo jak by zmieniać kolejność, ale napiszę:
  1. UPDATE `ListaMenu` SET `kolejka`=0 WHERE `kolejka`=1;
  2. UPDATE `ListaMenu` SET `kolejka`=1 WHERE `kolejka`=2;
  3. UPDATE `ListaMenu` SET `kolejka`=2 WHERE `kolejka`=0;

Dobrze to upchać do jednego zapytania:
  1. UPDATE `ListaMenu` SET `kolejka`=0 WHERE `kolejka`=1;
  2. UPDATE `ListaMenu` SET `kolejka`=1 WHERE `kolejka`=2;
  3. UPDATE `ListaMenu` SET `kolejka`=2 WHERE `kolejka`=0;") or die(mysql_query());


Powyższe zapytanie zamieni miejscami linki Index oraz Newsy.
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.