Funkcja Get id a kilka folderow?


(Krzysztofsirant) #1

Mozna zrobic aby zamiast id byly nazwy folderow i to nie jednego tylko kilku?

Mysle o czyms takiem?

Tylko ze nie bardzo mi to dziala

<?

switch ($_GET['alergie']['artykuly'])

{

case "stres":

include ("artykuly/stres.php");

break;

case "witaminy":

include ("alergie/witaminy.php");

break;

default:

include 'index2.php';

}

?>


(L337 Crew) #2

Wszystko można, tylko w tym przypadku traktujesz tablicę $_GET jako dwuwymiarową.

Z tego powodu powinieneś ją odpowiednio utworzyć itd.

Malutki przykładzik:

test.php


(Krzysztofsirant) #3

Dokladnie tak zrobilem ale na stronie pojawia sie takie cos:

Array ( [artykuly] => stres ) :frowning:


(L337 Crew) #4

Specjalnie podałem, by wypisać zawartość tablicy $_GET, abyś zobaczył co się wówczas dzieje :wink:

Usuń fragment print_r($_GET); oraz za te 'echa' podstaw sobie co tam chcesz.


(Krzysztofsirant) #5

Taki dalem kod:

<?

switch ($_GET['alergie']['artykuly'])

{

case 'stres':

echo ("artykuly/stres.php");

break;

case 'witaminy':

echo ("alergie/stres.php");

break;

default:

include 'index2.php';

}

?>

A link do plikow taki:

2. Witaminy

Ale dalej nie zmieniaja sie podstrony.

Czy cos jeszcze jest zle?


(L337 Crew) #6

Przecież w pierwszym poście coś napisałem...

Żeby to co powyżej podałeś zadziałało, musisz odpowiednio zadeklarować tablicę $_GET... w tym przypadku link powinien wyglądać tak:

2. Witaminy

No chyba że ja czegoś nie zrozumiałem, ale Twój "kod" jest mocno przekombinowany...


(Krzysztofsirant) #7

w kodzie zmienilem echo na include

oraz

zmienilem linka na:

2. Witaminy

i dzilala.

Nie rozumiem dlaczego jest taki kod w linku, chodzi mi o te artykuly w nawiasie kwadratowym? po co to?

I jak by wygladal kod jakbym mial 3 foldery np:

switch ($_GET['alergie']['artykuly']['nowosci'])

Jak by wygladal link do tego?

-- Dodane 21.02.2009 (So) 12:52 --

Zauwazylem ze jak dodam 3 folder:

switch ($_GET['alergie']['artykuly']['nowosci'])

to link zeby dzilala musi byc taki:

2. Witaminy

I tu moje pytanie:

Mozne jakos to tak pozmieniac zeby nie musiec dodawac do linku tych folderow. Bo jesli bede mial 5 folderow to w tedy kod robi sie trgicznie dlugi


(L337 Crew) #8

Zacznijmy od tego, że jest to po prostu kolejny WYMIAR tablicy, a nie folder 8)

Poczytaj o tablicach :arrow: http://php.net.pl/manual/pl/language.types.array.php

Sam sobie wybrałeś taką drogę i przekombinowałeś :wink:

Tu trochę o instrukcji switch :arrow: http://php.net.pl/manual/pl/control-str ... switch.php


(Krzysztofsirant) #9

Ok zeby nie bylo ze sie nie ucze wymodzilem cos takiego:

<?

$costam=$_GET['alergie'].$_GET['artykuly'].$_GET['nowosci'];

switch ($costam)

{

case 'stres':

include ("artykuly/stres.php");

break;

case "witaminy":

include ("alergie/witaminy.php");

break;

case "new":

include ("nowosci/new.php");

break;

default:

include 'index2.php';

}

?>

Link do tego juz nie jest dlugi oto dwa przyklady:

2. Witaminy

3. Stres

Dziala ok

Moja strona bedzie miala 20 takich folderow i okolo 200 podstron w tych folderach.

Nie wiem czy taki kod bedzie dobry do tylu plikow?

Jakie stosuje sie rozwiazania dla takich duzych serwisow?

Myslisz ze ten moj kod moze byc?