Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Warunek if
amxkylu
post 27.07.2005, 09:11:38
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.07.2005

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


Witam wszystkich!
Mam problemik z pętlą if, a mianowicie:
ma 3 możliwe warunki do spełnienia, w zależności od 2 zmiennych:

  1. <?php
  2. if(($porzadkowanie=='') && ($pporzodkowanie=='')) {
  3.  $zapytanie=&#092;"select * from $nazwa_tabeli where $like_str order by dzial $sortowanie_str 
    $
  4. imit_str\";
  5. }
  6. if(($porzadkowanie) && (!$pporzodkowanie)) {
  7.  $zapytanie=\"select * from $nazwa_tabeli where dzial='$porzadkowanie_str' and $like_str order by dzial $sortowanie_str $limit_str\";
  8. }
  9. if(($porzadkowanie) && ($pporzodkowanie)){
  10. $zapytanie=\"select * from $nazwa_tabeli where dzial='$porzadkowanie_str' and poddzial='$pporzadkowanie_str' and $like_str order by dzial $sortowanie_str $limit_str\";
  11. }
  12. ?>


Prosta sprawa - jak obie puste to wyciąga wszystko z bazy, jak pierwsza jest ustawiona a druga pust to tylko tam gdzie dział jest ze zmiennej , a trzeci jak obie są ustawione.
Pierwszy warunek sprawdza a potem leci drugim jakby w ogóle 3 nie było:(
Zmienne są napewno przekazywane bo sprawdzam je sobie wyświetlając je na początku za pomocą prostej funkcji.
Dodam też że próbowałem warunków
if...
elseif...
else...
Ten sam objaw!
Będę wdzięczny za wszelkie podpowiedzi, bo pewnie coś przeoczyłem.
Ps. Można coś takiego na np. swithach zrobic?
Z góruy dziękuję. Pozdrawiam wszystkich
Go to the top of the page
+Quote Post
bieniek
post 27.07.2005, 09:21:02
Post #2





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 6.07.2005

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


Masz warunki, które się nie wykluczają.
Zamiast używać !$zmienna powinieneś użyć $zmienna != '';


--------------------
Go to the top of the page
+Quote Post
amxkylu
post 27.07.2005, 10:00:26
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.07.2005

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


Teraz mam:

  1. <?php
  2. if((!$porzadkowanie) && (!$pporzodkowanie)) {
  3.  $zapytanie=&#092;"select * from $nazwa_tabeli where $like_str order by dzial $sortowanie_str 
    $
  4. imit_str\";
  5. }
  6. elseif(($porzadkowanie !='') && ($pporzodkowanie=='')) {
  7.  $zapytanie=\"select * from $nazwa_tabeli where dzial='$porzadkowanie_str' and $like_str order by dzial $sortowanie_str $limit_str\";
  8. }
  9. else 
  10. {
  11. $zapytanie=\"select * from $nazwa_tabeli where dzial='$porzadkowanie_str' and poddzial='$pporzadkowanie_str' and $like_str order by dzial $sortowanie_str $limit_str\";
  12. }
  13. ?>


i też nie hula sad.gif
Go to the top of the page
+Quote Post
peterj
post 27.07.2005, 10:12:00
Post #4





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Warszawa

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


  1. <?php
  2. if(isset($porzadkowanie) && isset($pporzodkowanie)){
  3. $zapytanie=&#092;"select * from $nazwa_tabeli where dzial='$porzadkowanie_str' and poddzial='$pporzadkowanie_str' and $like_str order by dzial $sortowanie_str $limit_str\"; }
  4. elseif(isset($pporzadkowanie) && !isset($porzadkowanie)){ 
  5. $zapytanie=&#092;"select * from $nazwa_tabeli where dzial='$porzadkowanie_str' and $like_str order by dzial $sortowanie_str $limit_str\";
  6. }else{
  7. $zapytanie=&#092;"select * from $nazwa_tabeli where $like_str order by dzial $sortowanie_str 
    $
  8. imit_str\"; }
  9. ?>


Ten post edytował peterj 27.07.2005, 10:18:57


--------------------
Warsztat: Apache 1.3.29 / PHP 4.3.4 / MySQL 3.23.58 / Winsyntax
Go to the top of the page
+Quote Post
bieniek
post 27.07.2005, 10:14:31
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 6.07.2005

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


  1. <?php
  2. if(($porzadkowanie != '') && ($pporzodkowanie!='')) {
  3.  $zapytanie=&#092;"select * from $nazwa_tabeli where $like_str order by dzial $sortowanie_str 
    $
  4. imit_str\";
  5. }
  6. elseif(($porzadkowanie !='') && ($pporzodkowanie=='')) {
  7.  $zapytanie=\"select * from $nazwa_tabeli where dzial='$porzadkowanie_str' and $like_str order by dzial $sortowanie_str $limit_str\";
  8. }
  9. else
  10. {
  11. $zapytanie=\"select * from $nazwa_tabeli where dzial='$porzadkowanie_str' and poddzial='$pporzadkowanie_str' and $like_str order by dzial $sortowanie_str $limit_str\";
  12. }
  13. ?>

i brakuje ci jeszcze jednego warunku jeżeli mają być wyczerpane wszytkie możliwości.

Ten post edytował bieniek 27.07.2005, 10:21:51


--------------------
Go to the top of the page
+Quote Post
amxkylu
post 27.07.2005, 10:34:50
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.07.2005

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


Dzięki chłopaki za podpowiedzi, ale żadna nie hula:(
objawy jak poprzednio -
wybiera przy obydwu pustych, przy pierwszej pusrej, a nie wybiera przy dwóch przypisanych sad.gif
Go to the top of the page
+Quote Post
peterj
post 27.07.2005, 10:46:33
Post #7





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Warszawa

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


Spróbuj jeszcze w ten sposób
  1. <?php
  2. if(isset($porzadkowanie) && isset($pporzodkowanie)){
  3. $zapytanie=&#092;"select * from $nazwa_tabeli where dzial='$porzadkowanie_str' and poddzial='$pporzadkowanie_str' and $like_str order by dzial $sortowanie_str $limit_str\"; }
  4. else{
  5. $zapytanie=&#092;"select * from $nazwa_tabeli where $like_str order by dzial $sortowanie_str 
    $
  6. imit_str\"; }
  7. elseif(isset($porzadkowanie) && !isset($pporzadkowanie)){
  8. $zapytanie=\"select * from $nazwa_tabeli where dzial='$porzadkowanie_str' and $like_str order by dzial $sortowanie_str $limit_str\";
  9. }
  10. ?>


Ten post edytował peterj 27.07.2005, 10:46:57


--------------------
Warsztat: Apache 1.3.29 / PHP 4.3.4 / MySQL 3.23.58 / Winsyntax
Go to the top of the page
+Quote Post
amxkylu
post 27.07.2005, 11:07:04
Post #8





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.07.2005

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


Też nie działa.
Zrobiłem coś takiego że sprawdziłem ile mi zwróci rekordów z zapytania:

if(($porzadkowanie != '') && ($pporzodkowanie!='')) {
$query = "select count(*) from $nazwa_tabeli where dzial='$porzadkowanie' and poddzial='$pporzadkowanie' and $like_str";
}
elseif(($porzadkowanie !='') && ($pporzodkowanie=='')) {
$query = "select count(*) from $nazwa_tabeli where dzial='$porzadkowanie' and $like_str";
}
else
{
$query = "select count(*) from $nazwa_tabeli where $like_str";
}

$result = mysql_query($query);

I zawsze nie sprwadza mi jednego waruku: jak obie zmienne są ustawione.
Np mam 4 rekordy w bazie, jak nie ma zmiennych to podaje liczbę 4, jak ustawię pierwszą zmienną to wyświetli np 3 , i to się zgadza, ale jak ustawię obie to wyświetla też 4, mino że w bazie jest tylko 1 taki rekord exclamation.gif!
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: 19.07.2025 - 16:56