Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]kropka i MySQL
kahil
post 10.08.2008, 11:28:31
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 29.11.2007

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


Witam,

Mam problem i nie potrafie sobie z nim poradzić mianowicie

jak dodaje do bazy np. "test.1" to potem jak wyszukuje np. "test_1" to znajduje to "test.1"

wiem że można to załatwić dodając "test\.1" ale jak to zrobić prosto? Addslashes, preg_quote itd nie działają! magic_quotes_gpc włączone...

Czy ktoś ma jakiś pomysł co jest nie tak?

Polej jest tak zdefiniowane:

VARCHAR( 250 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL



pozdro

Karol
Go to the top of the page
+Quote Post
wookieb
post 10.08.2008, 11:49:11
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Kod
str_replace('.', '\.', $ciag);

To takie trudne?
http://php.net/str_replace


--------------------
Go to the top of the page
+Quote Post
kahil
post 10.08.2008, 11:57:49
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 29.11.2007

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


Niezupełnie chodziło mi o to - troche źle chyba pytanie postawiłem.

Chodzi o to że pierwszy raz mi się zdarza że przy wyszukiwaniu kropka nie nie jest brana jak kropka tylko jak dowolny znak.

Czy to coś z kodowaniem bazy, rodzajem pola? Czy może to normalne i nie da sie tego wyeliminować inaczej niż tym sposobem który wymieniłeś 

A teraz jeszcze odkryłem że to dotyczy tylko "_" czyli jak wyszukuje "test_1" to znajduje "test.1" ale jak wyszukuje np. "test=1" czy cokolwiek innego w ten desen to nic nie znajduje... o co ke pasa?

Ten post edytował kahil 10.08.2008, 12:06:52
Go to the top of the page
+Quote Post
dr_bonzo
post 10.08.2008, 13:20:48
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Pokaz SQLke wyszukiwania

  1. SELECT * FROM tab WHERE pole LIKE "test_1";


Przy like, podkreslenie to jest dokladnie jeden dowolny znak [% - dowolna ilosc znakow, 0 lub wiecej]

Uzyj:
  1. SELECT * FROM tab WHERE pole = "test_1";


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Rude Dude
post 19.07.2009, 13:21:30
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 23.07.2007

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


Dlatego wyciąga ci test.1 ponieważ znak _ w zapytaniu do mysql jest interpretowany jako dowolny znak, więc wyciągnie z bazy test(jeden dowolny znak)1.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 01:59