Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Znaki globalne w stringu
Forum PHP.pl > Forum > Przedszkole
butek
Jest zmienna $a która przechowuje pewien string. String ten został dostarczony przez formularz. Jak zrobić aby ten string był początkiem jakiegoś innego. Tzn. przychodzi gość i szuka nazwisk w bazie i zna tylko początkowe jakieś znaki, wpisuje np. pierwszą literę i dostaje wszystkie wyraz zaczynające się na daną literę.
sajegib
SQL

  1. LIKE


Tajgeer
Przy zapytaniach do bazy danych możesz skorzystać np. z operatora LIKE.
Sephirus
Tak jak moi przedmówcy pisali jeśli chodzi o bazę danych wystarczy użyć LIKE:

  1. SELECT * FROM uzytkownicy WHERE nazwisko LIKE '%{$a}%'


Ważne są znaki % przed i po ciągu. Oznaczają one, że przed i za ciągiem mogą istnieć jeszcze inne znaki. Ze względu na wydajność jednak najlepszym rozwiązaniem jest tutaj pominięcie pierwszego znaku % - czyli szukanie nazwisk zaczynających się od $a. Dzięki temu możemy wykorzystać indeks. Ważne jest aby pole po którym szukasz miało ustawiony index w strukturze tabeli.

  1. -- wydajniej:
  2. SELECT * FROM uzytkownicy WHERE nazwisko LIKE '{$a}%'



Dodatkowo jeśli chcesz osiągnąć to samo w PHP i masz jakiś ciąg to wystarczy użyć stripos:

  1. if(stripos($ciag,$a) === 0) {
  2. echo 'jest!';
  3. }


ten zapis, bez rozróznienia wielkości znaków sprawdzi czy dany ciąg zaczyna się od $a
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.