Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php + mysql] Menu, Prosze nie odsylac do drzewek;-)
luki100011
post
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 20
Dołączył: 20.04.2004
Skąd: Wielkopolska

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


Witam
Zaczne tak oto kod sql
  1. CREATE TABLE `menu` (
  2. `id` int(8) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(30) NOT NULL,
  4. `potomek` int(8) NOT NULL DEFAULT '0',
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=8 ;
  7.  
  8. --
  9. -- Zrzut danych tabeli `menu`
  10. --
  11.  
  12. INSERT INTO `menu` (`id`, `nazwa`, `potomek`) VALUES (1, 'meble', 0);
  13. INSERT INTO `menu` (`id`, `nazwa`, `potomek`) VALUES (2, 'krzesla', 0);
  14. INSERT INTO `menu` (`id`, `nazwa`, `potomek`) VALUES (3, 'szafy', 1);
  15. INSERT INTO `menu` (`id`, `nazwa`, `potomek`) VALUES (4, 'sofy', 1);
  16. INSERT INTO `menu` (`id`, `nazwa`, `potomek`) VALUES (5, 'fotele', 1);
  17. INSERT INTO `menu` (`id`, `nazwa`, `potomek`) VALUES (6, 'drewniane', 3);
  18. INSERT INTO `menu` (`id`, `nazwa`, `potomek`) VALUES (7, 'drewnopodobno', 3);


Oraz kod php wyswietlajacy zawartosc menu z moziwoscio klikania i zaglebiania sie w strukture:
meble / szafy / ..
  1. <?php
  2. $polaczenie=mysql_connect('sql','sql,'sql');
  3. mysql_select_db('sql',$polaczenie);
  4. //
  5. $tmp=explode(',',$co);
  6. echo $tmp[1].'<br>';
  7. $zap=mysql_query('select * from menu where potomek=0');
  8. while($row=mysql_fetch_assoc($zap)){
  9. echo '<a href="?co='.$row['id'].'">'.$row['nazwa'].'</a><br>';
  10. if ($row['id']==$tmp[0]){
  11. $$tmp[0]=mysql_query('select * from menu where potomek='.$tmp[0]);
  12. while($row=mysql_fetch_assoc($$tmp[0])){
  13. echo '--><a href="?co='.$tmp[0].','.$row['id'].'">'.$row['nazwa'].'</a><br>';
  14. //
  15. if ($row['id']==$tmp[1]){
  16. $$tmp[1]=mysql_query('select * from menu where potomek='.$tmp[1]);
  17. while($row=mysql_fetch_assoc($$tmp[1])){
  18. echo '----><a href="?co='.$tmp[0].','.$tmp[1].','.$row['id'].'">'.$row['nazwa'].'</a><br>';
  19. }
  20. }
  21. //
  22. }
  23. }
  24. }
  25. //
  26. mysql_close($polaczenie);
  27. ?>


Jak do tej pory wystarczalo mi zagniezdzanie sie do tej liczby elementow - 3. Robulem to na warunkach if i dziala nie najgorzej.
To rozwiazanie ma nastepujacy problem - ano jak zmeinic warunki if na petle ktora sama bedzie potrafila okreslic jak daleko ma sie zagniezdzac. Czyli czy to 2, 5, 10... poziom podmenu.

A moze inne rozwiazania (IMG:http://forum.php.pl/style_emoticons/default/questionmark.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: 24.08.2025 - 16:01