Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SELECT IF() ....
billy235
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 1
Dołączył: 2.10.2007

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


Witam
Mam taki problem otórz chcę zrobić wyszykiwarkę do mojej bazy danych.
Mam formulaż w którym urzydkownik moze wprowadzić w poszczególnych polach różne dane.
Potem jest zapytanie postaci:
SELECT pole1, pole2, pole3 FROM tabela WHERE pole2=$zmienna1_z_formluaza AND pole3=$zmienna2_z_formulaza

Pojawia się tutaj problem ponieważ jeśli użydkownik wyśle formulaż nie kompletny czyli np nie wypełni jednego z pul formulaża to jedna ze zmiennych $zmiennaX_z_formulaza będzei pusta. W wyniku wykonania Powyższego selecta otrzymamy zbiór pusty (ponieważ każdo z pul w tabeli jest zawira wartość).

Chceł zrobić taie zapytanie które w przypadku gdy jedna ze zmiennych typu: zmiennaX_z_formulaza jest pusta to nie jest ona wogle brana pod uwagę z zapytaniu scelecta.

Próbowałem coś takiego:
SELECT pole1, pole2, pole3 FROM tabela WHERE pole1=cos IF($zmienna1_z_formluaza, "AND pole2=$zmienna1_z_formluaza ", "") IF($zmienna2_z_formluaza, "AND pole3=$zmienna2_z_formluaza ", "")

Ale to jakoś mi nie działa chyba żle zasowsowałem funkcję IF() Czy ktoś zna jakiś lepszy działąjący sposób??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


ale byki sadzisz, uzywaj FF, tam masz poprawianie bledow w tresci z formularza

formularz
pól
urzytkownik


zrob sprawdzanie po stronie PHP
jezeli jakies pole jest nie puste to wtedy dodaj do zapytania
"AND pole=$zmienna"
Go to the top of the page
+Quote Post
prgTW
post
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 3
Dołączył: 10.09.2004
Skąd: Warszawa

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


Na przyklad tak:
  1. <?php
  2. // najlpierw podlaczenie do bazy mysql_connect, zeby real_escape_string dzialalo p
    oprawnie ponizej
  3. $zmienna2 = !empty($_POST['zmienna2']) && is_string($_POST['zmienna2']) ? mysql_real_escape_string($_POST['zmienna2']) : null;
  4. // analogicznie inne zmienne stringowe
  5.  
  6. $query = mysql_query('
  7. select
  8. ...
  9. from
  10. ...
  11. where
  12. 1
  13.  ' . (!empty($zmienna2) ? 'and pole2='' . $zmienna2 . ''' : '') . '
  14.  ' . (!empty($zmienna3) ? 'and pole3='' . $zmienna3 . ''' : '') . '
  15. ');
  16. ?>


Ten post edytował prgTW 2.10.2007, 21:41:53
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:27