Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja Include(); + Mysql, funkcja include();+$_GET['mgid']+mySQL
mpps
post 27.08.2004, 21:27:46
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


kolejna zagwostka dry.gif :

Kod
while ($line = mysql_fetch_row($row_count)) {
printf("<A HREF=\"index.php?id=%s\">%s</A><BR>", $line[2], $line[1]);

if(!isset($id)){
    include("jakas_strona.htm"); // domyślna wyświetlana strona
}
else{
    include($_GET['id']);
}


wyjaśnienia:
- line[2] to rekord w bazie z linkiem do jakiejs_podstrony
- line[1] to nazwa linku do jakiejs_podstrony wyświetlana na stronie w menu
- jest jeszcze jedna komórka w tabeli, poprzedzająca pozostałe, gdzie zapisany jest indeks danej podstrony (przyjmijmy line[0]).
Czyli zapis w bazie danych wygląda np. tak:

indeks | nazwa linku | adres URL podstrony
1 | strona 1 | strona_1.htm
2 | strona 2 | strona_2.htm

itd.

i teraz:
kliknięcie na link spowoduje przekazanie wartości w URL: id=jakas_strona.htm (przekazywanie danych odbędzie się za pomocą metody GET). A więc adres w pasku adresu będzie wyglądał tak: www.domena.pl/index.php?id=jakas_strona.htm. Dzięki temu zostanie wyświetlona (includowana) dana podstrona.

Pytanie:
jak podstawić zmienną, która będzie pobierała dane z URL, w którym zamiast dokładnego adresu URL po zmiennej 'id' podany będzie indeks (na zasadzie: www.domena.pl/index.php?id=1 - gdzie 1 to indeks) kojarzony z podstroną strona_1.htm, która ma zostać wyświetlona?
Rozumiem, że ta zmienna powinna być podstawiona pod 'id' w include($_GET['id']);

pozdro
marcin


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
tumczasty
post 28.08.2004, 09:38:39
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 2.08.2004
Skąd: Rzeszów

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


chyba tak:
  1. <?php
  2. while ($line = mysql_fetch_row($row_count)) {
  3. echo('<A HREF=\"index.php?id='.$line[0].'\">'.$line[1].'</A><BR>');
  4. if($line[0]==$_GET['id']) $podstr=$line[2];
  5. }
  6.  
  7. if(!isset($podstr)){
  8. include('jakas_strona.htm'); // domyślna wyświetlana strona
  9. }
  10. else{
  11. include($podstr);
  12. }
  13. ?>

kod php tu, na forum, dawaj nie do znacznika [CODE], tylko do [php]
Go to the top of the page
+Quote Post
mpps
post 28.08.2004, 16:31:47
Post #3





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


thnx!
ruszyło po drobnych korektach (potrzebnych do dostosowania do reszty kodu).
tego właśnie potrzebowałem!
idąc dalej tą drogą: jeśli by chcieć podzielić wyświetlane menu np. na dwa menu znajdujące się po lewej i prawej stronie (oczywiście będą dwie tabele w bazie - jedna dla lewego menu i jedna dla prawego) na zasadzie:
  1. <?php
  2. while ($line_l = mysql_fetch_row($row_count_l)) {
  3. echo('<A HREF=\"index.php?id='.$line_l[0].'\">'.$line_l[1].'</A><BR>');
  4. if($line_l[0]==$_GET['id']) $podstr=$line_l[2];
  5. }
  6.  
  7. if(!isset($podstr)){
  8. include('jakas_strona.htm'); // domyślna wyświetlana strona
  9. }
  10. else{
  11. include($podstr);
  12. }
  13.  
  14. while ($line_r = mysql_fetch_row($row_count_r)) {
  15. echo('<A HREF=\"index.php?id='.$line_r[0].'\">'.$line_r[1].'</A><BR>');
  16. if($line_r[0]==$_GET['id']) $podstr=$line_r[2];
  17. }
  18. ?>


dlaczego taki podział? aby wynik był wyświetlany pośrodku strony pomędzy lewym i prawym menu.
niestety taki sposób rozmieszczenia kodu (chodzi o prawe menu) nie powoduje wyświetlania kojarzonej podstrony po kliknięciu na link z prawego menu, tylko domyślną, mimo prawidłowego przekazania do URL-a sad.gif.
jak to ominąć?
oczywiście przemieszczenie części kodu odpowiedzialnej za prawe menu przed część z includowaniem powoduje, że wszystko działa bez zarzutu, lecz oba menu są wtedy po tej samej stronie sad.gif

i jeszcze jedno:

wiem, że wystarczy podstawić:
print("Przykro mi - strona, której szukasz, jest w tej chwili niedostępna");
w miejscu:

  1. <?php
  2.  
  3. if(!isset($podstr)){
  4. include('jakas_strona.htm'); // domyślna wyświetlana strona
  5. }
  6. else{
  7. include($podstr);
  8. }
  9.  
  10. ?>


aby w razie braku wyniku do wyświetlenia wyświetlał się powyższy tekst zamiast domyślnej strony ale jak wtedy wyświetlać domyślną stronę czy raczej domyślnie środek startowej strony...?

pozdro
m


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post
tumczasty
post 28.08.2004, 20:47:05
Post #4





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 2.08.2004
Skąd: Rzeszów

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


no to trzeba kod przemieścić, ale prawe menu wyświetlić po właściwej stronie

czy załapałem, o co chodziło:

  1. <?php
  2. while ($line_l = mysql_fetch_row($row_count_l)) {
  3. echo('<A HREF=\"index.php?id='.$line_l[0].'\">'.$line_l[1].'</A><BR>');
  4. if($line_l[0]==$_GET['id']) $podstr=$line_l[2];
  5. }
  6.  
  7. $bufor='';
  8. while ($line_r = mysql_fetch_row($row_count_r)) {
  9. $bufor.='<A HREF=\"index.php?id='.$line_r[0].'\">'.$line_r[1].'</A><BR>';
  10. if($line_r[0]==$_GET['id']) $podstr=$line_r[2];
  11. }
  12.  
  13. if(isset($_GET['id'])) {
  14. if(!isset($podstr)){
  15. print('Przykro mi - strona, której szukasz, jest w tej chwili niedostępna.');
  16. }
  17. else{
  18. include($podstr);
  19. }
  20. } else
  21. include('jakas_strona.htm'); // strona domyślna
  22.  
  23. echo $bufor;
  24. ?>


pamiętaj, że w takim układzie indeksy w obu tabelach nie mogą się dublować

pozdrawiam
t
Go to the top of the page
+Quote Post
mpps
post 29.08.2004, 09:56:19
Post #5





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


Bardzo Ci dziękuję - oczywiście pomogło smile.gif
muszę trochę więcej poczytać i... czasami pomyśleć winksmiley.jpg

czy miałbyś może sposób na rozwiązanie drugiej części pytania?

pozdrawiam
m

ps.
obiecuję pomyśleć winksmiley.jpg

ps.1
dużo czasu poświęcasz na kodowanie?
pytanie chyba retoryczne... biggrin.gif


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post
tumczasty
post 29.08.2004, 10:09:05
Post #6





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 2.08.2004
Skąd: Rzeszów

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


a czy "druga połowa" mojego ostatniego kodu nie rozwiązuje tego problemu? (może go nie zrozumiałem...)

skoro pytanie jest retoryczne, to odpowiadać nie będę smile.gif
Go to the top of the page
+Quote Post
mpps
post 29.08.2004, 11:01:17
Post #7





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


sorki, dopiero po odpisaniu Tobie zauważyłem tą część kodu blink.gif
i już pewnie się nie zdziwisz, jak powiem, że działa bez zarzutu. winksmiley.jpg
jeszcze raz thnx!!
jeśli będziesz miał ochotę zobaczyć wyniki - zapraszam: www.mpps.asternet.pl
lub napisać - też zapraszam: mpps@asternet.pl

... może ja będę mógł w czymś Ci pomóc?
kto wie...

pozdro
marcin


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
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: 13.08.2025 - 22:56