Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]linki na stronie - jak zrobic i czego uzyc?
InosU31
post
Post #1





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Witam

Probuje robic strone w php i nie mam pojecia jak zabrac sie za odnosniki do innych stron..

Chodzi mi o to ze na stronie glownej bede mial kilkanascie linkow do roznych podstron cos na styl :

MENU
jakis_link
jakis_inny
jeszce_jeden

OPCJE
jakis_link
jakis_inny
jeszce_jeden

itd...

I teraz nie wiem czy napisac jakas klase zeby mi generowala switch'a i przypadki tak ze jak bede mial przypadek MENU to wyswietli mi linki z MENU, czy uzyc normalnie switcha w index.php albo w osobnym pliku i zainkludowac go pozniej, albo za pomoca if'a, czy uzyc bazy danych do zapisania nazw tych linkow?

jesli uzyje switcha to bedzie tych przypadkow b.duzo:/ chialbym jakos zautomatyzowac to zebym pozniej mogl w panelu aministracyjnym np. dodac sobie kolejna"ramke" z nazwa i linkami no i przedewszystkim skrocic kod.

Jak wy to robicie? czego uzywacie??

z gory dzieki za podpowiedzi

Pozdrawiam
Go to the top of the page
+Quote Post
zelu
post
Post #2





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


Możesz stworzyć sobie osobny plik, w którym będziesz miał tylko menu, czyli np:

  1. <ul>
  2. <li><a href="...">Link 1</li>
  3. <li><a href="...">Link 2</li>
  4. <li><a href="...">Link 3</li>
  5. <li><a href="...">Link 4</li>
  6. <li><a href="...">Link 5</li>
  7. ...
  8. <li><a href="...">Link n</li>
  9. </ul>


i plik z taka zawartością, później includujesz w konkretnej stronie/podstronie. Ta metoda ma taką zaletę, że jeżeli chcesz coś dodać/zmienić w menu, to robisz to tylko w jednym pliku.

No ale to jest tylko jedna z metod... Ten problem możesz rozwiązać co najmniej na kilkanaście innych sposobów...

Pozdrawiam
Go to the top of the page
+Quote Post
tomsi
post
Post #3





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


W bazie danych tworzysz sobie tabele menu. Będziesz w niej przechowywał np. takie dane: id, nazwa (np. MENU, OPCJE, jakis_link, inny_link, itd), sciezke_dostepu_do_pliku, glowna_kategoria, podkategoria).

w glowna_kategoria i podkategoria będziesz sobie zaznaczał czy chcesz aby ten link był jako glowna_kategoria (wtedy możesz sobie zrobić żeby napis był dużymi literami, innym kolorem, itp) albo podkategoria (i też wtedy sobie formatujesz jak Ci się podoba).

Piszesz sobie skrypt odpowiedzialny za automatyczne tworzenie linków. Za pomoca pętli pobierasz sobie wszystkie rekordy z bazy i tworzysz linki. Musisz jakimś warunkiem sprawdzić czy jest to glowna_kategoria czy podkategoria żeby rozróżnić, który szablon linku użyć.

P.S.
Stwórz sobie jeszcze jedno pole w bazie które będzie grupowało podkategorie do odpowiedniej glowna_kategoria żeby nie było tak że podkategoria z MENU wczyta się w OPCJE.

Ten post edytował tomsi 1.05.2009, 09:30:23


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
Kredka29
post
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

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


Jeżeli nie masz SQL'a, to robisz menu w np. menu.php
a w index.php, tam gdzie ma być menu dajesz
  1. <?php
  2. include "menu.php";
  3. ?>

Możesz jeszcze zrobić linki typu page.php?go=strona1
Wtedy robisz plik page.php i wklejasz do niego:
  1. <?php
  2. $go=$_GET['go'];
  3. $url=$go.'.php';
  4. if (file_exsist($url))
  5. {
  6. inlude $url;
  7. }
  8. else
  9. {
  10. echo 'Error 404';
  11. }
  12. ?>

Teraz w menu.php dodawaj linki w stylu
  1. *<a href="page.php?go=strona1">Strona1</a>
  2. *<a href="page.php?go=strona2">Strona2</a>
  3. *<a href="page.php?go=strona3">Strona3</a>
  4. *<a href="page.php?go=strona4">Strona4</a>


Uwaga: Po wywołaniu page.php?go=strona1, otworzy się strona strona1.php, a po wejściu na page.php?go=strona2 - strona2.php. Oczywiście nazwy mogą być dowolne, a rozszerzenie (w tym wypadku *.php), możesz zmienić na html, wpisując $url=$go.'.html'; zamiast $url=$go.'.php';


--------------------
Mam Windows 7 RC
Go to the top of the page
+Quote Post
InosU31
post
Post #5





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Cytat(tomsi @ 1.05.2009, 10:28:52 ) *
W bazie danych tworzysz sobie tabele menu. Będziesz w niej przechowywał np. takie dane: id, nazwa (np. MENU, OPCJE, jakis_link, inny_link, itd), sciezke_dostepu_do_pliku, glowna_kategoria, podkategoria).

w glowna_kategoria i podkategoria będziesz sobie zaznaczał czy chcesz aby ten link był jako glowna_kategoria (wtedy możesz sobie zrobić żeby napis był dużymi literami, innym kolorem, itp) albo podkategoria (i też wtedy sobie formatujesz jak Ci się podoba).

Piszesz sobie skrypt odpowiedzialny za automatyczne tworzenie linków. Za pomoca pętli pobierasz sobie wszystkie rekordy z bazy i tworzysz linki. Musisz jakimś warunkiem sprawdzić czy jest to glowna_kategoria czy podkategoria żeby rozróżnić, który szablon linku użyć.

P.S.
Stwórz sobie jeszcze jedno pole w bazie które będzie grupowało podkategorie do odpowiedniej glowna_kategoria żeby nie było tak że podkategoria z MENU wczyta się w OPCJE.


NO dzieki :-) cos pokombinuje - mam juz zrobiona tabelke do przechowywania nazw tych naglowkoa i linkow i zalozylem ze nie bedzie ich wicej niz 10. zastanawiam sie czy nie zrobic drugiej tabelki do przechowywania wartosci tych linkow (czyli <a href=sciezka_do_pliku...). Cos pokombinuje;-)

a chcialem wiedziec jak wy to robicie bo sposobow jest kilka a ja bym chial jakos to zrobic zeby nie przekombinowac za bardzo;-)

Pozdrawiam:-)

juz sobie poradzilem dzieki:-)

mam teraz kolejny problem ...

mam dwie tabele - jedna obsluguje mi "ramki" z lewej strony a druga z prawej

czy istnieje mozliwosc zebym uzyl jednego case do 2 tabelek questionmark.gif

myslalem nad czyms takim :
  1. <a href="action=link&lewa_strona&id="jakies_id">jakis_tytul</a>

  1. <a href="action=link&prawa_strona&id="jakies_id">jakis_tytul</a>


tylko nie wiem jak to przeniesc do skryptu tak zeby mi to dzialalo:/
mam cos takiego :
  1. <?php
  2. case "edytujl":
  3.    
  4.        if (isset($_GET['id']))
  5.        {    
  6.        $result = $dbase->get_query("
  7.                        SELECT * FROM ramka_l
  8.                        WHERE id = ".$_GET['id']."
  9.                        ");
  10.                        
  11.            if ($result)
  12.            {
  13.            $ramka = new cTemplate;
  14.            
  15.                $ramka->tassign['nagl'] = $result[0]['naglowek'];
  16.                $ramka->tassign['kol'] = $result[0]['link1']."<br>";
  17.                $ramka->tassign['kol1'] = $result[0]['link2']."<br>";
  18.                $ramka->tassign['kol2'] = $result[0]['link3']."<br>";
  19.                $ramka->tassign['kol3'] = $result[0]['link4']."<br>";
  20.                $ramka->tassign['kol4'] = $result[0]['link5']."<br>";
  21.                $ramka->tassign['kol5'] = $result[0]['link6']."<br>";
  22.                $ramka->tassign['kol6'] = $result[0]['link7']."<br>";
  23.                
  24.                $ramka->tassign['opcje'] = "";
  25.                $page->tassign['main'] = $ramka->parse("common/ramka.htm");
  26.                $page->tassign['main'] .= $ramka->parse("common/edit_ramka.htm");
  27.            }    
  28.        }
  29.                        
  30.        
  31.        break;
  32.        
  33.        case "edytujr":
  34.    
  35.        if (isset($_GET['id']))
  36.        {    
  37.        $result = $dbase->get_query("
  38.                        SELECT * FROM ramka_p
  39.                        WHERE id = ".$_GET['id']."
  40.                        ");
  41.                        
  42.            if ($result)
  43.            {
  44.            $ramka = new cTemplate;
  45.            
  46.                $ramka->tassign['nagl'] = $result[0]['naglowek'];
  47.                $ramka->tassign['kol'] = $result[0]['link1']."<br>";
  48.                $ramka->tassign['kol1'] = $result[0]['link2']."<br>";
  49.                $ramka->tassign['kol2'] = $result[0]['link3']."<br>";
  50.                $ramka->tassign['kol3'] = $result[0]['link4']."<br>";
  51.                $ramka->tassign['kol4'] = $result[0]['link5']."<br>";
  52.                $ramka->tassign['kol5'] = $result[0]['link6']."<br>";
  53.                $ramka->tassign['kol6'] = $result[0]['link7']."<br>";
  54.                
  55.                $ramka->tassign['opcje'] = "";
  56.                $page->tassign['main'] = $ramka->parse("common/ramka.htm");
  57.                $page->tassign['main'] .= $ramka->parse("common/edit_ramka.htm");
  58.            }    
  59.        }
  60. ?>


a chialbym miec to w jednym case dla obu tabelek.

a wyswietlanie mam tak :
  1. <?php
  2. //------------------------LEWA STRONA RAMKA------------------------------
  3.    $result = $dbase->get_query("
  4.                        SELECT * FROM ramka_l
  5.                        ");
  6.                        
  7.    if ($result)
  8.    {
  9.        $leftr = new cTemplate;
  10.        $page->tassign['ramkal'] = "";
  11.        
  12.        foreach ($result as $record)
  13.        {
  14.            $leftr->tassign['nagl'] = $record['naglowek'];
  15.            $leftr->tassign['kol'] = "<a href=\"?action=link&id=".$record['id']."\">".$record['link1']."</a><br>";
  16.            $leftr->tassign['kol1'] = "<a href=\"?action=link&id=".$record['id']."\">".$record['link2']."</a><br>";
  17.            $leftr->tassign['kol2'] = "<a href=\"?action=link&id=".$record['id']."\">".$record['link3']."</a><br>";
  18.            $leftr->tassign['kol3'] = "<a href=\"?action=link&id=".$record['id']."\">".$record['link4']."</a><br>";
  19.            $leftr->tassign['kol4'] = "<a href=\"?action=link&id=".$record['id']."\">".$record['link5']."</a><br>";
  20.            $leftr->tassign['kol5'] = "<a href=\"?action=link&id=".$record['id']."\">".$record['link6']."</a><br>";
  21.            $leftr->tassign['kol6'] = "<a href=\"?action=link&id=".$record['id']."\">".$record['link7']."</a>";
  22.            
  23.            $leftr->tassign['opcje'] = "<a href=\"?action=dodajl&id=".$record['id']."\">>dodaj<</a> ";
  24.            $leftr->tassign['opcje'] .= "<a href=\"?action=edytujl&id=".$record['id']."\">>edytuj<</a> ";
  25.            $leftr->tassign['opcje'] .= "<a href=\"?action=usunl&id=".$record['id']."\">>usun<</a> ";
  26.            $page->tassign['ramkal'] .= $leftr->parse("common/ramka.htm");
  27.        }    
  28.    }
  29.    //-------------------------------------------------------------------------
  30.    
  31.    //------------------------PRAWA STRONA RAMKA------------------------------
  32.    $result = $dbase->get_query("
  33.                        SELECT * FROM ramka_p
  34.                        ");
  35.                        
  36.    if ($result)
  37.    {
  38.        $leftr = new cTemplate;
  39.        $page->tassign['ramkap'] = "";
  40.        
  41.        foreach ($result as $record)
  42.        {
  43.            $leftr->tassign['nagl'] = $record['naglowek'];
  44.            $leftr->tassign['kol'] = $record['link1']."<br>";
  45.            $leftr->tassign['kol1'] = $record['link2']."<br>";
  46.            $leftr->tassign['kol2'] = $record['link3']."<br>";
  47.            $leftr->tassign['kol3'] = $record['link4']."<br>";
  48.            $leftr->tassign['kol4'] = $record['link5']."<br>";
  49.            $leftr->tassign['kol5'] = $record['link6']."<br>";
  50.            $leftr->tassign['kol6'] = $record['link7'];
  51.            
  52.            $leftr->tassign['opcje'] = "<a href=\"?action=dodajr&id=".$record['id']."\">>dodaj<</a> ";
  53.            $leftr->tassign['opcje'] .= "<a href=\"?action=edytujr&id=".$record['id']."\">>edytuj<</a> "; // w to miejsce bym chial dac to :"prawa_strona"
  54.            $leftr->tassign['opcje'] .= "<a href=\"?action=usunr&id=".$record['id']."\">>usun<</a> ";
  55.            $page->tassign['ramkap'] .= $leftr->parse("common/ramka.htm");
  56.        }
  57. ?>


da sie tak zrobic zeby case sprawdzal mi ktora ramke kliknolem?? bo z id mi wychodzi ale nie wiem jak przerobic to zeby tez zmieniala sie prawa i lewa strona :/

Pozdrawiam

ps. mam nadzieje ze ktos to zrozumie co napisalem;-)
Go to the top of the page
+Quote Post
zelu
post
Post #6





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


Ale dane masz i tak rozbite na 2 kolumny. Więc tak czy inaczej będziesz musiał 2 razy przelecieć po wynikach...

Jeżeli chcesz wszystko zrobić w jednym miejscu to może sensowniej by było zrobić jedną tabelę dla menu i dać w niej dodatkowe pole, które będzie rozgraniczało czy jest to lewe czy prawe menu.

I wtedy w switchu sprawdzisz wartość tego pola i wstawisz linka w odpowiednie miejsce?


Pozdrawiam
Go to the top of the page
+Quote Post
InosU31
post
Post #7





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Cytat(zelu @ 2.05.2009, 08:48:53 ) *
Ale dane masz i tak rozbite na 2 kolumny. Więc tak czy inaczej będziesz musiał 2 razy przelecieć po wynikach...

Jeżeli chcesz wszystko zrobić w jednym miejscu to może sensowniej by było zrobić jedną tabelę dla menu i dać w niej dodatkowe pole, które będzie rozgraniczało czy jest to lewe czy prawe menu.

I wtedy w switchu sprawdzisz wartość tego pola i wstawisz linka w odpowiednie miejsce?
Pozdrawiam


to ma sens:-) myslalem nad czyms takim zeby wybrac wszystko z dwoch tabelek i w zaleznosci od drugiego wyniku "lewa_strona" lub "prawa_strona" sprawdzac no ale sprobuje to przerobic na jedna tabelke;-) pozdrawiam :-)
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 Aktualny czas: 21.08.2025 - 15:03