Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konwersja string-a z pola text formularza na zapytanie SQL
Forum PHP.pl > Forum > PHP
sonicius
Przykładowo mam w tabeli kolumne "opis":

w fomularzu pole typu text do wyszukiwania po opisie

Chciałbym jednak, aby była możliwość wpisywania w te pole takich: "zapytań":

"String1 oraz String2 lub String3"

POtrzebowałbym jakiegoś algorytmu, który te wartość przemianuje mi na część zapytania SQL:

...(opis like %String1% AND opis like %String2%) OR (opis like %String3%)


cojack
coś w ten deseń:
  1. $pattern = '([a-zA-Z]+)\s(oraz)\s([a-zA-Z]+)\s(lub)\s([a-zA-Z]+)';


no i wrzucić to do preg_match, wyciągnąć znalezione, no i te znalezione później dopisać do zapytania.
sonicius
Cytat(cojack @ 3.10.2009, 14:49:33 ) *
coś w ten deseń:
  1. $pattern = '([a-zA-Z]+)\s(oraz)\s([a-zA-Z]+)\s(lub)\s([a-zA-Z]+)';




Warning: preg_match() [function.preg-match]: Unknown modifier '\'

:/
cojack
Kod
[cojack-lap][~] $ php -r '$a = "String1 oraz String2 lub String3"; $pattern = "/(?<string1>\w+)\s(?:oraz)\s(?<string2>\w+)\s(?:lub)\s(?<string3>\w+)/"; preg_match($pattern,$a,$b); print_r($b);'
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pgsql.so' - /usr/lib/php/modules/pgsql.so: cannot open shared object file: No such file or directory in Unknown on line 0
Array
(
    [0] => String1 oraz String2 lub String3
    [string1] => String1
    [1] => String1
    [string2] => String2
    [2] => String2
    [string3] => String3
    [3] => String3
)
[cojack-lap][~] $


oraz wycinek z manuala odnośnie tego mojego string1 , 2 , 3

  1. <?php
  2.  
  3. $str = 'foobar: 2008';
  4.  
  5. // Works in PHP 5.2.2 and later.
  6. preg_match('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);
  7.  
  8. // Before PHP 5.2.2, use this:
  9. // preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);
  10.  
  11. print_r($matches);
  12.  
  13. ?>
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.