Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak wyjść z IF do dalszej części kodu
TheArt
post 4.01.2010, 00:24:30
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 20.09.2007

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


Hej.

Mam warunki

  1. <?php
  2. if($_GET['page'] == "onas") {
  3. include "tresc/leftcl_onas.php"; }
  4. if($_GET['page'] == "media") {
  5. include "tresc/leftcl_media.php"; }
  6. if($_GET['page'] == "porady") {
  7. include "tresc/leftcl_porady.php"; }
  8. if($_GET['page'] == "kontakt") {
  9. include "tresc/leftcl_kontakt.php"; }
  10. else {
  11. include "tresc/leftcl_onas.php"; }
  12.  
  13. ?>


Według mnie jeśli zmienna $_GET przyjmuje którąkolwiek z wartości 'page' to nie powinna się wykonywać ELSE, jednakże za każdym razem includuje mi treść właściwą z IFa, zaś pod nią tą z ELSE. Wychodzi że mam podwojoną treść. Co zrobić żeby po spełnieniu warunku nie wykonywał else.

Ten post edytował TheArt 4.01.2010, 00:25:37
Go to the top of the page
+Quote Post
cojack
post 4.01.2010, 00:25:42
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

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


to może nie dawaj cały czas if tylko if elseif elseif elseif elseif.

Albo zrób to na switch.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
blooregard
post 4.01.2010, 00:27:31
Post #3


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
Według mnie jeśli zmienna $_GET przyjmuje którąkolwiek z wartości 'page' to nie powinna się wykonywać ELSE, jednakże za każdym razem includuje mi treść właściwą z IFa, zaś pod nią tą z ELSE.

else odnosi się do ostatniego if-a. Dlatego, jeśli któryś z wcześniejszych warunków będzie spełniony, ostatni if nie będzie, więc wykona się ten else.

Zamień to na switch'a najlepiej.
A najlepiej poczytaj o podstawach:
http://pl2.php.net/manual/pl/control-structures.if.php

Ten post edytował blooregard 4.01.2010, 00:28:19


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
Crozin
post 4.01.2010, 00:28:57
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Albo nie sprawdzaj n razy tego samego, tylko zrób coś w stylu:
  1. $allowed = array('media', 'porady', 'kontakt');
  2. $load = in_array($_GET['page'], $allowed) ? $allowed[$_GET['page']] : 'onas';
  3.  
  4. require 'tresc/...' . $load . '.php';
Go to the top of the page
+Quote Post
TheArt
post 4.01.2010, 00:34:50
Post #5





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 20.09.2007

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


Właśnie teraz mi się rozjaśniło, że to do ostatniego ifa się odnosi. Crozin mógłbyś mi to przybliżyć, byłoby czyściej w kodzie.

Użyłem SWITCH dzieki.



Ten post edytował TheArt 4.01.2010, 01:01:06
Go to the top of the page
+Quote Post
darko
post 4.01.2010, 02:18:06
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Jak nie dasz Crozin'owi plusa, to nie wiem winksmiley.jpg

  1. switch($_GET["page"]) {
  2.  
  3. case "onas":
  4. include "tresc/leftcl_onas.php";
  5. break;
  6.  
  7. case "media":
  8. include "tresc/leftcl_media.php";
  9. break;
  10.  
  11. }


Ten post edytował darko 4.01.2010, 12:36:57


--------------------
Nie pomagam na pw, tylko forum.
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: 24.06.2025 - 13:21