Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Porównanie zmiennej z dowolną liczbą
Forum PHP.pl > Forum > Przedszkole
paramyksowiroza
Witam,
muszę porównać ze sobą dwie zmienne.
Problem polega na tym, że nie wiem, czy obie zmienne będą zawierały jakąś wartość, gdyż te wartości będą wysyłane z formularza.
Próbowałem do jednej ze zmiennych przypisać dowolny ciąg znaków, ale porównanie wówczas nie działa...

  1. $wynik[iduser]='*' ;
  2. if (($wynik[id_user]==$wynik[id])AND ($wynik[id]==$wynik[iduser]))


Czy da się w jakiś sposób porównać zmienną liczbową z dowolnym ciągiem znaków?
Pozdrawiam
wookieb
  1. if(isset($dane_z_formularza['pole']) && $dane_z_formularza['pole'])
  2. {
  3. // ok
  4. }
paramyksowiroza
Tak, ale niestety nie o to mi chodzi...
Problem wygląda szerzej tak:
Jest wyszukiwarka.
Nie wiem, jakie pola będą wypełnione.
Zapytanie do MySQL-a ma za zadanie wyświetlić loginy osób, które mają zadany login, poziom wyksztalcenia, województwo, itd... (każde kryterium z innej tabeli)
Ponieważ nie wiem, co zostanie wypełnione w formularzu, nie mogę użyć porównania kluczy obcych w zapytaniu SQL-a, więc chcę je porównać przez php.
Jednak porównanie pomiędzy kluczem głównym z tabeli z loginami z np. kluczem obcym z tabeli z województwami mnie ma sensu, jeśli województwo nie zostanie wysłane przez formularz.

Dlatego zamierzałem zrobić tak:
W momencie, w którym województwo nie jest wysłane, zostaje podstawiony znak oznaczający dowolną liczbę.
Warunek się zgadza i wszystko ok.
Tylko jak porównać zmienną o określonej wartości ze zmienną bez określonej wartości?

  1. {
  2. $login = mysql_real_escape_string (trim($_POST['login']));
  3. $od= mysql_real_escape_string (trim($_POST['od']));
  4. $do= mysql_real_escape_string (trim($_POST['do']));
  5. $woj= mysql_real_escape_string (trim($_POST['woj']));
  6. $miasto= mysql_real_escape_string (trim($_POST['miasto']));
  7. $wyksztalcenie= mysql_real_escape_string (trim($_POST['wyksztalcenie']));
  8.  
  9. if($login == "")
  10. {
  11. $login='%';
  12. }
  13. if($od == "")
  14. {
  15. $od='%';
  16. }
  17. if($do == "")
  18. {
  19. $do='%';
  20. }
  21.  
  22. if($woj == "")
  23. {
  24. $woj='%';
  25. }
  26.  
  27. if($miasto == "")
  28. {
  29. $miasto='%';
  30. }
  31. if($wyksztalcenie == "")
  32. {
  33. $wyksztalcenie='%';
  34. }
  35.  
  36.  
  37. //echo $login;
  38. //echo $od;
  39. //echo $do;
  40. //echo $miasto;
  41. //echo $woj;
  42. // $wyksztalcenie;
  43. //echo $k_wyk;
  44. //echo $k_ad;
  45. //
  46. $querry = mysql_query("
  47. SELECT `usertest`.`login` , `wyksztalcenie`.`poziom` ,
  48. `wyksztalcenie`.`id_user` , `usertest`.`id`, `adres`.`id_user` as iduser
  49. FROM `wyksztalcenie` , `usertest`, `adres`
  50. WHERE
  51. (
  52. (`usertest`.`login` LIKE '%{$login}')
  53. AND (`wyksztalcenie`.`poziom` LIKE '{$wyksztalcenie}')
  54. AND (`adres`.`woj` LIKE '{$woj}'))
  55.  
  56.  
  57. ORDER BY `usertest`.`login` ASC
  58.  
  59. ");
  60. while ($wynik = mysql_fetch_assoc($querry)) {
  61. $a='\d' ;
  62. if (($wynik[id_user]==$wynik[id])AND ($wynik[id]==$a))
  63. {
  64. //echo $wynik[iduser];
  65. echo $wynik[login];
  66. //echo $wynik[id_user];
  67. echo '<br/>';
  68. }
  69.  
  70. }
  71. }
  72.  
nospor
źle do tego podszedles.
Warunki powinienes dobudowywać do zapytania.
Tutaj o tym pisałem:
http://nospor.pl/wyszukiwarka-zapytanie-za...runkow-n31.html
wookieb
1) Wystarczy nie dodawać warunku do where dla którego nie podano wartości
2) http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html 4 przykład


Zalecana metoda nr 1
paramyksowiroza
nospor, dokładnie o to mi chodziło. W sumie też chodził mi po głowie pomysł zrobienia jakiejś zmiennej tekstowej zawierającej zapytanie i chyba tak właśnie zrobię.

wookieb, to właśnie ciężko jest dodawać, albo nie where, skoro nie wiem wcześniej, co zostało wysłane, a co nie.
Przykład nospora rozjaśnił mi nieco w głowie.

Dziękuję bardzo za pomoc.
Pozdrawiam
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.