Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> REGEXP - wyrażenie regularne
areli
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (10%)
X----


czy może ktoś mi pomóc napisać odpowiednie wyrażenie regularne? no chyba, że można zrobić to jakoś lepiej

mam w bazie danych kontrahentów i jedna kolumna, to AvailableContractors czyli kontrahenci udostępnieni... opcjonalnie jest puste, a za każdym razem gdy dany kontrahent zostaje udostępniony konkretnemu użytkownikowi, dopisuje się jego ID + 'hasz' jako znak oddzielający, tj.
12#1#61#

w jaki sposób wyszukać danego kontrahenta?

  1. '.$db->nameQuote("contractors.AvailableContractors").' REGEXP '.$db->quote($IDUser).'


taki zapis oczywiście nie jest właściwy, bo $IDUser=1 jest zgodny z #21#1#17 itd.

można tak:

  1. '.$db->nameQuote("contractors.AvailableContractors").' REGEXP '.$db->quote("(\#)($IDUser)(\#)").'


ale pierwszy zapis nigdy nie zawiera z lewej strony znaku hasz, bo przy udostępnianiu musiałbym najpierw sprawdzać czy w bazie istnieje jakikolwiek zapis i jeśli nie, to dodać user'a z 2 znakami hasz... zbędna zabawa... wolałbym rozwiązać to wyrażeniami, tj. z lewej hasz lub NIC, z prawej hasz.

próbowałem tak: (\#?) - ale to znaczy hasz lub nie, ale jeśli nie hasz to również może być inny znak, np. #21#1#17 itd.

---------- czy to takie trudne, że nikt na forum nie wie? :/ ----------

Ten post edytował areli 1.05.2011, 14:15:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Może tak:
  1. $db->quote("(".$IDUser.")\#");
Go to the top of the page
+Quote Post
areli
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (10%)
X----


no właśnie tak nie dział, bo jeśli IDUser = 1, to będzie poprawne również to:

56464561#
271#
41#

itd.

rozwiązałem to tak:

  1. OR
  2. (
  3. '.$db->nameQuote("contractors.AvailableContractors").' REGEXP '.$db->quote("(\#)($IDUser)(\#)").'
  4. OR
  5. '.$db->nameQuote("contractors.AvailableContractors").' REGEXP '.$db->quote("^($IDUser)(\#)").'
  6. )


Ten post edytował areli 2.05.2011, 13:49:16
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.12.2025 - 14:05