Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] petla if problem
Lonas
post 10.03.2006, 11:38:49
Post #1





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

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


Dlaczego przy takim kodzie
  1. <?php
  2. if( $dzial != NULL && $gama !==NULL ) {
  3. $sqlwhere .= " `dzial` = '$dzial'";
  4. }
  5.  
  6. if( $dzial !== NULL && $gama !=NULL ) {
  7. $sqlwhere .= "`gama` = '$gama' ";
  8.  
  9. }
  10. if( $dzial != NULL && $gama !=NULL ) {
  11. $sqlwhere .= " `dzial` = '$dzial' and `gama` = '$gama' ";
  12. }
  13.  
  14.  
  15. if($sortuj != NULL) {
  16. $sqlwhere .= " order by '$sortuj' desc";
  17. }
  18.  
  19. if($sortuj !== NULL) {
  20. $sqlwhere .= " ";
  21. }
  22. ?>


zaznaczajac naraz i game i dzial otrzymuje taki wynik

where `dzial` = '2'`gama` = 'A' `dzial` = '2' and `gama` = 'A'

Ten post edytował L.Pociask 10.03.2006, 11:42:09


--------------------
Go to the top of the page
+Quote Post
nospor
post 10.03.2006, 11:40:27
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no i jak wyglada ta linia?
  1. <?php
  2. f( ($dzial != NULL) $$ ($gama !==NULL ) ) {
  3. ?>
Jestes pewien ze tak się robi anda? Luknij na inne linie

edit:
patrząc na twoj kod, to albo nie zakumales oco chodzi w metodzie co ci linka podalem, albo jej nie zastosowales


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lonas
post 10.03.2006, 11:43:34
Post #3





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

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


Tak smile.gif masz racje smile.gif

Teraz tylko nie wiem czemu te warunki tak dziwnie sprawdza


--------------------
Go to the top of the page
+Quote Post
nospor
post 10.03.2006, 11:52:48
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




widze ze nie zakumales metody:
http://forum.php.pl/index.php?showtopic=36...533;entry204618
Przyjrzyj się jej jeszcze raz/dwa/trzy. Czy ja w ifach dawalem po dwa warunki? Nie. Dawalem po jednym.
A ty u siebie w if rozpatrujesz wszystkie kombinacje.
A metoda co ci podalem unika zabawy w kombinacje.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kszychu
post 10.03.2006, 12:07:01
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


A ja jak zwykle w kwestii formalnej: if nie jest pętlą a instrukcją warunkową.
Prawie robi ogromną różnicę...

A te dwa ify na końcu to co mają na celu?


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Lonas
post 10.03.2006, 12:23:51
Post #6





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

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


Ok mam smile.gif

  1. <?php
  2. $wh = array();
  3. if (!empty($dzial))
  4.  $wh[] = 'dzial= '.$dzial;
  5. if (!empty($gama))
  6.  $wh[] = 'gama='.$gama;
  7.  
  8. if (!empty($wh))
  9.  $where = 'where '.implode(' and ', $wh);
  10. else
  11.  $where = '';
  12.  
  13. $sql = 'select * from marza_ujemna '.$where ;
  14. ?>


żeby teraz dodać sort by to musze wprowadzić. np

$sort = array () ? ?

Ten post edytował L.Pociask 10.03.2006, 12:33:03


--------------------
Go to the top of the page
+Quote Post
kszychu
post 10.03.2006, 12:33:10
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


  1. <?php
  2.  
  3. $sql = 'SELECT * FROM jakastabela WHERE ';
  4.  
  5. if($dzial != NULL) {
  6. $sqlwhere .= "`dzial` = '{$dzial}' AND ";
  7. }
  8.  
  9. if($gama !=NULL ) {
  10. $sqlwhere .= "`gama` = '{$gama}' AND ";
  11. }
  12. $sqlwhere .= ' true';
  13.  
  14. if($sortuj != NULL) {
  15. $sqlwhere .= "order by '{$sortuj}' desc";
  16. }
  17.  
  18. echo $sql.$sqlwhere;
  19.  
  20. ?>


Słówko komentarza:
1. Poczytaj o != i !==; używasz ich jako operatorów równości i nierówności. ONE OBA są opertorami nierówności, z tym, że ten drugi sprawdza dodatkowo tym porównywanuch argumentów.
2. Liczyłem na więcej komentarzy, dlatego wstawiłem numerację, ale skończy sięna komentarzu nr 1.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
nospor
post 10.03.2006, 12:39:07
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2.  
  3. //... tak jak miales
  4. $sql = 'select * from marza_ujemna '.$where ;
  5. if(!empty($sortuj))
  6. $sql .= " order by `$sortuj` desc";
  7.  
  8.  
  9. ?>
zakladam ze kierunku nie uwzgledniasz. a jak uwzgledniasz, to juz pomysl sam biggrin.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lonas
post 10.03.2006, 12:52:37
Post #9





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

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


Wiesz co.. smile.gif nie działa mi jeszcze sortowanie

  1. <?php
  2.  
  3. $wh = array();
  4. if (!empty($dzial))
  5.  $wh[] = 'dzial= '.$dzial;
  6. if (!empty($gama))
  7.  $wh[] = 'gama='.$gama;
  8.  
  9.  
  10.  
  11. if (!empty($wh))
  12.  $where = 'where '.implode(' and ', $wh);
  13. else
  14.  $where = '';
  15.  
  16. $sql = 'select * from marza_ujemna '.$where ;
  17.  
  18. if(!empty($sortuj))
  19. $sql .= " order by `$sortuj` desc";
  20.  
  21.  
  22. print $sortuj;
  23. print $sql;
  24.  
  25. ?>


jak wyswietle sortuj pokazuje sie dobra wartosc wartosc $sql też
select * from marza_ujemna where dzial= 5 and gama=S order by 'zapas' desc


a w zapytaniu

Something is wrong in your syntax obok 'select * from marza_ujemna where dzial= 5 and gama=S order by 'z' w linii 1

ucina coś

probowałem też tak :

if(!empty($sortuj))
$sql .= " order by $sortuj desc";
ale to samo

Ten post edytował L.Pociask 10.03.2006, 12:55:25


--------------------
Go to the top of the page
+Quote Post
nospor
post 10.03.2006, 12:59:03
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




on ucina zapytanie w wiadomosci o errorze, a nie wogole obcina zapytanie winksmiley.jpg

a te gamma to jest tekst/varchar/char ? jak tak to musi byc w ''
gama='S'
popraw se w kodzie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lonas
post 10.03.2006, 13:34:30
Post #11





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

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


wiem .. proste hehe
ale próbowałem juz na milion sposób, zatrzymałem sie na

  1. <?php
  2. $wh[] = 'gama=' "' .$gama'" ;
  3. ?>


i caly czas blad skladni

tak tez nie :
  1. <?php
  2.  $wh[] = "'gama= '' .$gama ' ";
  3. ?>


Ten post edytował L.Pociask 10.03.2006, 13:38:22


--------------------
Go to the top of the page
+Quote Post
nospor
post 10.03.2006, 13:38:16
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




tu masz wszystko co szukasz:
http://pl.php.net/manual/pl/language.types.string.php

warn juz ci wisi nad glową za niechęc do manuala...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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.07.2025 - 17:09