Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyrażenia regularne - parsowanie zapytan mysql'a
ppp
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 29.01.2008

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


witam,
potrzebowałbym jakiejs sugestii jak sparsować dowolne (no może nie do końca dowolne bo selecta) zapytanie do mysqla tak zeby móc do niego dolozyc jakis warunek dodatkowy.
Powiedzmy ze mam takie zapytania
  1. <?php
  2. $sql = "select * from table where field1 = 'value'";
  3. $sql2 = "select * from table left join table2 on table.id=table2.table_id";
  4. $sql3 = "select * from table order by field1 desc";
  5. $sql4 = "select * from table where (field1 = 'value1' or field2 = 'value2) group by field3";
  6. ?>

i do wszystkich chcialbym dolozyc warunek field3='value3' zeby bylo
  1. <?php
  2. $sql = "select * from table where field1 = 'value' and field3='value3'";
  3. $sql2 = "select * from table left join table2 on table.id=table2.table_id where fiel
    d3='value3'"
    ;
  4. $sql3 = "select * from table where field3='value3' order by field1 desc";
  5. $sql4 = "select * from table where (field1 = 'value1' or field2 = 'value2) and field3='value3' group by field3";
  6. ?>

mam nadzieje ze wiadomo o co chodzi.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


1. Szukasz" /\\swhere\\s/i przy pomocy preg_match" title="Zobacz w manualu PHP" target="_manual
- Jeśli znalazłeś, to dodajesz zaraz za nim: " ( field3 = 'value3' ) AND "

2. Jeśli nie znalazłeś, to szukasz pierwszego wystąpienia tego wzorca: /\\s(group|order|limit)\\s/i. Wstaw sobie tutaj wszystkie słowa kluczowe jakie mogą wystąpić PO WHERE. Listę oraz KOLEJNOŚĆ (ważne!) znajdziesz w manualu na mysql.com
- Jeśli znalazłeś, to dodajesz zaraz przed tym: " WHERE ( field3 = 'value3' ) "

3. Jeśli nie znalazłeś, to dodajesz na końcu zapytania: " WHERE ( field3 = 'value3' )"



Żeby rozwiązanie było w pełni profesjonalne, to trzeba by jeszcze odsiać wystąpienia WHERE, GROUP, ORDER,... w podzapytaniach, komentarzach, apostrofach, odwróconych apostrofach i byćmoże cudzysłowu. Jednak myślę, że na twoje potrzeby wystarczy to co jest powyżej ;]

Ten post edytował Kicok 29.02.2008, 00:19:34
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 02:08