Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Menu w poziomie
chomiczek
post 27.01.2005, 03:33:24
Post #1





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


Zastanawiam sie w jaki sposób zrobić dobre menu w poziomie.. Tzn wchodząc w głab chciałbym, zeby mi się pojawiało coś na wzór tego co jest np. na tym forum, tzn. Linki php.pl -> Forum -> Skrypty php w bazie mam kilka tabel, w tej która mnie interesuje sa m.in. takie pola jak cat_id oraz parent_id, gdzie pole parent_id wskazuje numer cat_id.. Jak zrobić, żeby takie menu działało.. prubowałem tworzyć na sesjach, ale coś spartoliłem.. nie oczekuje odpowiedzi (no może troszeczke).. ale raczej wskazania w jaki sposób, czego użyć, itp.


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
kicaj
post 27.01.2005, 08:33:43
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


A czytales o 'drzewkach'?


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
chomiczek
post 27.01.2005, 20:28:12
Post #3





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


No czytałem.. tylko, że.. hmmm.. no właśnie.. nie bardzo wiem jak to ugryźć.. tzn co i kiedy wyświetlać (tzn jak tworzyć to menu z linkami)questionmark.gif


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
Linandar
post 28.01.2005, 16:35:05
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 30.12.2004
Skąd: Mielec

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


Ja uŻywam czegoś takiego, może i ty przerobisz skrypt, tak aby pasował do twojej strony.
  1. <?php
  2.  
  3. function get_category_tree($pid)
  4. {
  5.       $sql = &#092;"SELECT up_id, title FROM \".TABEL_PAGES.\" WHERE pid = $pid\";
  6.       if (!$sql)
  7.       {
  8.          message_die(GENERAL_ERROR, 'Couldn't retrieve data', '', __LINE__, __FILE__, $sql);
  9.       }
  10.       $qid = mysql_query($sql);
  11.       if (mysql_num_rows($qid))
  12.       {
  13.             list($parent, $name) = mysql_fetch_row($qid);
  14.             $name = \"<a href='pages.php?id=$pid' class=\"mainmenu\">$name</a>\";
  15.       }
  16.       else
  17.       {
  18.             $parent = -1;
  19.             $name = \"\";
  20.       }
  21.       if ($parent > -1)
  22.       {
  23.             return print_category_tree($parent) . \" -&gt; \" . $name;
  24.       }
  25.       elseif ($pid > 0)
  26.       {
  27.             return \"<a href='portal.php' class=\"mainmenu\">Home</a> -&gt; \" . $name;
  28.       }
  29.       elseif ($id == 0)
  30.       {
  31.             return \"<a href='portal.php' class=\"mainmenu\">Home</a>\";
  32.       }
  33. }
  34.  
  35. function print_category_tree($pid=false) {
  36. /* prints the category tree by calling get_category_tree */
  37.  
  38. echo get_category_tree($pid);
  39. }
  40.  
  41. $sql = \"SELECT title FROM \".TABEL_PAGES.\" WHERE pid = $id\";
  42. if (!$sql)
  43.       {
  44.             message_die(GENERAL_ERROR, 'Couldn't retrieve data', '', __LINE__, __FILE__, $sql);
  45.       }
  46. $qid = mysql_query($sql);
  47. $row = mysql_fetch_row($qid);
  48. $title = $row[0];
  49. print(&#092;"<span class=\"nav\">\");
  50. get_category_tree($id);
  51. print (&#092;" -&gt; \".$title.\"</span>\");
  52. ?>

Oczywiście zmienną $id musisz sobie pobrać z np adresu. Jeśli chcesz zobaczyć jak to dział u mnie to zapraszam Moja strona

Ten post edytował Linandar 28.01.2005, 16:36:24
Go to the top of the page
+Quote Post
chomiczek
post 31.01.2005, 09:45:04
Post #5





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


@Linandar
Hmm.. niby ok, ale coś u mnie nie działa.. de facto póki co zmieniłem kod w dwóch miejscach i niestety nie działa.. zwraca mi tylko tyle: ->

Mój zmodyfikowany kod wygląda tak (te fragmenty, które zmieniłem):
  1. <?php
  2. $sql = &#092;"SELECT `parent_id`, `nazwa` FROM `kwasny_kategorie` WHERE `cat_id` = $pid\";
  3. ?>

oraz
  1. <?php
  2. $sql = &#092;"SELECT `nazwa` FROM `kwasny_kategorie` WHERE `cat_id` = $pid\";
  3. ?>


czyli tak naprawdę zmieniłem tylko nazwy pól.. zastanawiam się co mogłem zrobić źle.. Masz może jakąś propozycję?? Sugestie??

P.S. Może (tzn. raczej napewno chodzi o nazwy pól w tabeli)
W mnie to odpowienio:
- cat_id to numer katalogu
- nazwa to nazwa
- parent_id wskazuje na cat_id (jesli parent_id == 0 wtedy jest to kategoria TOP

Ten post edytował chomiczek 31.01.2005, 09:47:27


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
Linandar
post 31.01.2005, 15:59:03
Post #6





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 30.12.2004
Skąd: Mielec

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


Pytnie, czy zwraca ci też błędy, np: Warning: mysql_fetch_row()... czy tylko "->" ?
Go to the top of the page
+Quote Post
chomiczek
post 31.01.2005, 16:28:43
Post #7





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


Zwraca mi tylko to.. byc moze że jest jakis błąd, ale nie widzę go... z doświadczenia wiem, że na tym serwerze wyłączone jest raportowanie błedów na ekranie i dlatego mogę nie widzieć nic.. sad.gif


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
Linandar
post 1.02.2005, 23:16:37
Post #8





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 30.12.2004
Skąd: Mielec

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


no to na 99% nie masz pobranego identyfikatora. Nie czyta zmiennej $pid
np dla strony o identyfikatorze 3 musisz mieć ades w postaci: url/strona.php?pid=3 i wówczas odczytujesz zminną pid
  1. <?php
  2. $pid = ( isset( $HTTP_POST_VARS['pid']) ) ? $HTTP_POST_VARS['pid'] : $HTTP_GET_VARS['pid'];
  3. ?>

zakładam, że linie wyprostowałeś.

Ten post edytował Linandar 1.02.2005, 23:22:40
Go to the top of the page
+Quote Post
chomiczek
post 2.02.2005, 11:16:23
Post #9





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


zmieniłem serwer i teraz wygląda to tak:
w tej:
  1. <?php
  2. $row = mysql_fetch_row($qid);
  3. ?>
mam taki błąd:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/*****/test/admin/index.php on line 133

natomiast w tej:
  1. <?php
  2. if (mysql_num_rows($qid))
  3. ?>
mam taki:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/****/test/admin/index.php on line 100

I to by było na tyle.


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
Linandar
post 3.02.2005, 08:51:41
Post #10





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 30.12.2004
Skąd: Mielec

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


No to w takim razie masz dodładnie to, co opisałem ci w poprzednim poście. Pusisz pobrać a adresu wartość zminnej $qid.
można to zrobić na kilka sposobów. Ważne jest jednak to, że w adresie musi być umieszczony identyfikator strony! zakładając, że masz adres postaci: url/page.php?id={tutaj jakać wartość} pobierasz z niego info o id:
  1. <?php
  2. $pid = isset($_GET['id']) ? $_GET['id'] : 1;
  3. ?>
powyższy kod umieszczasz zaraz pod znacznikiem <?php w swoim skrypcie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 15:03