Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Problem z warunkami
Forum PHP.pl > Forum > PHP
wozniak
Witam chce zrobic taki warunek ze jak wystapi jakas zmienna to nie wyswietli napisu a przy wszystkich inncy wyswietli. Zrobiłem tak:
Kod
if ($dzial=='2' && $pokaz=='1' ) {}//Tu chce zeby warunek był spełniony tylko w przypadku dwóch zmiennych
else
if ($dzial=='2') {}
else
if ($dzial=='1') { }
else {
print("jakis napis");

}



Ale nie działa:( Gdzie jest bład?
Fallout
Cytat(wozniak @ 2005-02-21 17:26:23)
Witam chce zrobic taki warunek ze jak wystapi jakas zmienna to nie wyswietli napisu a przy wszystkich inncy wyswietli. Zrobiłem tak:
Kod
if ($dzial=='2' && $pokaz=='1' ) {}//Tu chce zeby warunek był spełniony tylko w przypadku dwóch zmiennych
else
if ($dzial=='2') {}
else
if ($dzial=='1') { }
else {
print("jakis napis");

}



Ale nie działa:( Gdzie jest bład?

Nie rozumiem sad.gif

moze tak?

  1. <?php
  2.  
  3. switch ($dzial)
  4. {
  5.  case 1: 
  6. echo &#092;"dzial 1\"; 
  7.  break;
  8.  
  9.  case 2:
  10. if ($pokaz=1) 
  11.  {
  12.  (...) 
  13.  }
  14. break;
  15.  
  16.  itd.
  17. }
  18.  
  19. ?>
wozniak
Chce zrobic cos takiego:
Wyjasnie moze na przykładzie zdjecia
mam warunki jesli ktorys warunek sie spełni to nie wyswietli zdjecia
1.jezeli $a=1 i $b=1 to nic nie pokaze
2.jezeli $y=1 to nic nie pokaze
a jezeli zaden warunek sie nie spełni to pokaze obrazek
Teraz da sie mnie zrozumiec?smile.gif
gruszek_
ja chyba zalapalem ale nie wiem czy dobrze - czy chodzilo Ci o to ze napis ma sie nie wyswietlic kiedy ktorakolwiek ze zmiennych "wystapi"

to by bylo tak:
Kod
<?php
if (!isset($zmienna1) && !isset($zmienna2)){
print "costam"; //wyswietli tylko gdy nei ma ani jednej ani drugiej zmeinnej
}
?>


albo jesli przez wystapienie rozumiesz ze ma jakas wartosc to zamiast !isset($costam) daj $costam==""
mam nadzieje ze dobrze zrozumialem winksmiley.jpg
Fallout
Cytat(wozniak @ 2005-02-21 17:46:54)
Chce zrobic cos takiego:
Wyjasnie moze na przykładzie zdjecia
mam warunki jesli ktorys warunek sie spełni to nie wyswietli zdjecia
1.jezeli $a=1 i $b=1 to nic nie pokaze
2.jezeli $y=1 to nic nie pokaze
a jezeli zaden warunek sie nie spełni to pokaze obrazek
Teraz da sie mnie zrozumiec?smile.gif

ino to po co sprawdzac czy warunki sie spelnia? lepiej sprawdzac czy sie nie spelnia smile.gif

  1. <?php
  2.  
  3. if ($a!=&& $b!=&& $y!=1) 
  4. {
  5.  wyswietl_zdjecie();
  6. }
  7.  
  8. ?>


to przyklad, dostosuj go do swoich potrzeb...

pozdro
wozniak
Chodzi własnie o to ze jezeli jakas zmienna wystapi z dana wartoscia to napis lub zdjecie sie nie pokaze.A jezeli zaden warunek sie nie spełni to zdjecie lub napis sie nie pokaze.Jak do warunku wpisac dwie zmienne?
Tak:
Kod
<?
if ($a!=1 && $b!=1)
?>

Tak:
Kod
<?
if ($a='1' && $b='1')
?>

Tak:
Kod
<?
if ($a=='1' && $b=='1')
?>

Czy moze jeszcze inaczej?
Fallout
Cytat(wozniak @ 2005-02-21 17:52:27)
Chodzi własnie o to ze jezeli jakas zmienna wystapi z dana wartoscia to napis lub zdjecie sie nie pokaze.A jezeli zaden warunek sie nie spełni to zdjecie lub napis sie nie pokaze

Heh juz zakreciles konkretnie... moze najpierw zweryfikuj jakie zmienne, jak wartosci maja byc dla zmiennych (zakres)...

albo moze takie cos:
  1. <?php
  2.  
  3. if ((if ($a==1) && if ($b==1)) ==FALSE)
  4.  {
  5. if (($y==1)== FALSE)
  6.  {
  7. wyswietl_zdjecie();
  8. }
  9. }
  10.  
  11. ?>


moglem pomieszac z nawiasami ale cos w tym stylu?
sam juz sie zaplatalem smile.gif
wozniak
No to by było dobre tylko cos nie działa:( To moze ja powiem do czego jest mi to potrzebne w php-nuke w themes jest blocks(left);
i teraz chce zrobic zeby on sie zawsze wyswietlał tylko nie gdy moduł nazywa sie Content i pid jest rowny 19
czyli $name=Content && $pid=19
i jeszcze gdzy moduł nazywa sie Forums
czyli $name=Forums.
a przy kazdej innej nazwie wyswietli blocks(left);
gruszek_
no mozesz zrobic tak jak wyzej pisalem, inaczej mowiac gdy zadna zmienna nie ma wartosci (czyli inaczej - wszystkie nie maja wartosci) wiswietlisz oberazek, jak ktorakolwiek ma to nie wyswietlasz czyli:
  1. <?php
  2. if($a==&#092;"\" && $b==\"\" && $c==\"\" .......itp..itd...){
  3. print &#092;"obrazek\";
  4. }
  5. ?>

jak jakas zmienna nie bedzie pusta to sie obrazek nie pokaze.

a jezeli to ma zalezec od konkretnej wartosci zmiennej (a nie od tego czy jest cokolwiek czy nie ma) to np tak:
  1. <?php
  2. //tu spr czy zmienne NIE maja podanej wartosci
  3. if($a!=&#092;"cos\" && $b!=\"cos\" && $c!=\"cos\" .....itp..itd...){
  4. print &#092;"obrazek\";
  5. }
  6. ?>


ten wykrzyknik to jest negacja czyli "!=" tzn NIE-ROWNA-SIE


------edyt

aa teraz jak napisales konkretnie to wiadomo konkretnie o co chodzi smile.gif
  1. <?php
  2.  
  3. if($name!=&#092;"Content\" && $pid!=\"19\" && $name!=\"Forums\"){
  4. print &#092;"obrazek\";
  5. }
  6.  
  7. ?>
wozniak
Tylko teraz nie pokaze mi jezeli zmiena pid bedzie rowna np. 19
A zmienna pid wysteouje w roznych modułach dlatego chciałem w takim waruknku zrobic ze tylko gdy np. pid=19 i name=content to sie nie pokaze.

Dodałem:
Jak jest tak:
Kod

     if ($name=='Forums') {}
   else
   if ($name=='Members_List') {}
   else
    if ($name=='Private_Messages') { }
   else {
    blocks(left);

}    
To działa
A jak jest tak:
Kod
if ($name=='Content' && $pid=='19') {}
   else  
     if ($name=='Forums') {}
   else
   if ($name=='Members_List') {}
   else
    if ($name=='Private_Messages') { }
   else {
    blocks(left);

}    
To nie działa czyli jest to wina tego:
Kod
if ($name=='Content' && $pid=='19')

To jak wpisac dwie zmienne?
Ociu
Jeśli dobrze zrozumiałem, to można taki myk zrobić:
  1. <?php
  2. switch($name)
  3. {
  4. case 'content':
  5. if($pid=='19')
  6. {
  7. #bez obrazka
  8. }
  9. break;
  10.  
  11. case 'costam':
  12. #costam
  13. break;
  14. }
  15. ?>
wozniak
Jak jest tak
Kod
    switch($name)
{
    case 'Content':
        if($pid=='19')
        {}
    break;
    
    case '':
        blocks(left);
            break;
}

To chyba było by dobrze tylko musiałbym wypisac wszystkie moduły w ktorych maja sie pokazac lewe bloki
Ociu
zamiast:
  1. <?php
  2. case '':
  3.  blocks(left);
  4.  break;
  5. ?>

daj:
  1. <?php
  2.  default:
  3. blocks(left);
  4. break;
  5. ?>
gruszek_
Cytat
chciałem w takim waruknku zrobic ze tylko gdy np. pid=19 i name=content to sie nie pokaze.

no to proste:
  1. <?php
  2. if(!($name==&#092;"Content\" && $pid==\"19\" && $name==\"Forums\")){
  3. print &#092;"obrazek\";
  4. }
  5. ?>

po co tyle linii pisac i grzebac w tych kejsach tongue.gif
wozniak
Kod
    switch($name)
{
    case 'Content':
        if($pid=='19')
        {}
    break;
    
   default:
   blocks(left);
   break;


}
To było by dobre tylko cały moduł Content nie ma lewej strony;)
"gruszek_" przeczytaj moje posty;) Jak bym uzył Twojego skryptu to gdzie by nie wystapiła np. zmienna pid=19 (a jak wiadomo w phpnuke jest bardzo duzo zmiennych pid)to nie pokaze lewej strony a tu chodzi o to zeby nie pokazał tylko w modulce content pid 19
Ociu
Mam tylko jedno pytanie... czy blocks(left); odpowiada za lewą stronę ?
Dobra w sumie dwa, jeśli tak, czy dałeś go...
wozniak
Tak odpowiada i go dałem.
I sprawa wyglada tak:
  1. <?php 
  2. if ($name=='Content') {
  3.     if ($pid=='19'){}
  4.     else{
  5.     print(&#092;"$pid tu\");
  6.     }
  7. } 
  8. else
  9. if ($name='Forums') {} 
  10. else { 
  11.   blocks(left);
  12.   } 
  13.     ?>
Mysle ze jak by było tak to by działało tylko jest pewien problem on nie widzi zmiennej pid:( wchodzi sie w strone przez adres modules.php?name=Content&pa=showpage&pid=19 i jak widac w adresie jest pid ale na stronie nawet jak robiłem print("$pid"); to nie działało:(
Fallout
Cytat
jak widac w adresie jest pid ale na stronie nawet jak robiłem print("$pid"); to nie działało:(


a sproboj tak:

  1. <?php
  2.  
  3. $twoj_pid = $_GET['pid'];
  4. echo $twoj_pid;
  5.  
  6. ?>


i wyswietla ci ten Pid?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.