Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z funkcja implode
Forum PHP.pl > Forum > Przedszkole
gados82
Ponizej prezentuje kod w ktorym jest bład

  1. <?php
  2. $wynik = pg_query(&#092;"select k.nr_pokoju from klienci k , pokoje p 
  3. where
  4. p.nr_pokoju=k.nr_pokoju 
  5. and ('\".$_POST['data_przybycia'].\"' between k.data_przybycia and k.data_wyjazdu 
  6. or '\".$_POST['data_wyjazdu'].\"' between k.data_przybycia and k.data_wyjazdu)
  7. ;&#092;");
  8.  
  9. $ilosc_wierszy=pg_num_rows($wynik);
  10.  
  11. while ($wiersz = pg_fetch_array($wynik,null,PGSQL_NUM))
  12.  
  13.  
  14.  {
  15. foreach ($wiersz as $www);
  16. $z[]=&#092;"nr_pokoju<>$www\";
  17. $where = implode($z, &#092;" AND \"); 
  18. {
  19. print &#092;" $where\" ;
  20. }
  21.  
  22.  }
  23.  
  24. ?>



ten kod zwraca mi takie wartości

nr_pokoju<>1 nr_pokoju<>1 AND nr_pokoju<>5


nie wiem dlaczego dwa razy jest "nr_pokoju<>1" powinno byc raz czyli tak
"nr_pokoju<>1 AND nr_pokoju<>5" poniewaz zmienna $www ma takie wartości 1 i 5 a nie 1, 1 i 5

Podsumowujac potrzebne mi jest zeby wynikiem tego kodu było
"nr_pokoju<>1 AND nr_pokoju<>5"
nospor
Ty to print $where robisz w pętli while.
Na mój gust ta pętla przelatuje dwa razy. Za pierwszym razem tablica wiersz zawiera tylko jeden element i wypisuje Ci na ekran nr_pokoju<>1. Za drugim razem tabela wiersz zawiera dwa elementy i wypisuje Ci nr_pokoju<>1 AND nr_pokoju<>5.
W rezultacie wypisywania otrzymujesz:
nr_pokoju<>1 nr_pokoju<>1 AND nr_pokoju<>5
gados82
juz problem rozwiazałem ale pojawił sie nowy

  1. <?php
  2. while ($wiersz = pg_fetch_array($wynik,null,PGSQL_NUM))
  3.  
  4.  
  5.  {
  6. foreach ($wiersz as $www);
  7. $z[]=&#092;"nr_pokoju<>$www\";  
  8. $where = implode($z, &#092;" AND \"); 
  9.   
  10.  
  11.  }
  12.  
  13. if($where=null)
  14.  
  15. {
  16. $wynik2 = pg_query(&#092;"select * from pokoje order by nr_pokoju\");
  17. }
  18. else
  19. {
  20. $wynik2 = pg_query(&#092;"select * from pokoje where $where;\");
  21. }
  22. ?>




nie wiem dlaczego ten warunek mi nie chodzi?? od 13 linijki (ten if)

zawsze wykonuje ta linijke choc jestem pewny ze $where ma jakas wartosc
  1. <?php
  2. $wynik2 = pg_query(&#092;"select * from pokoje order by nr_pokoju\");
  3. ?>



jak widac where ma wartosc implode czyli wypisuje takie rzeczy
nr_pokoju<>1 AND nr_pokoju<>2

gdzei tu jest bład
pillot
a może by tak
  1. <?php
  2.  
  3. if ($where == null) { // porównanie, a nie przypisanie
  4. //...
  5. }
  6.  
  7. ?>
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.