Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyciąganie danych z bazy i problem z LIKE
Forum PHP.pl > Forum > Przedszkole
mefistofeles
W tabeli w polu 'data' mam dane zapisane w ten sposób:

5+15+10+21

I teraz chciałbym za pomocą zapytania wybrać tylko te wiersze w których występuję '5'.

Zrobiłem to za pomocą LIKE:

  1. $wynik = mysql_query("SELECT * FROM tab WHERE data LIKE '%".$_GET['cat']."%' and (".$numerdoogladania.") order by added desc LIMIT ".$start.",".$l_odp_nastronie."");


Jednak nie jest to dobre rozwiązanie bo w tym przypadku oprócz '5' zwróci mi też '15' bo 5 się w nim mieści.

Zastanawiam się jak zrobić żeby wyciągało mi tylko koknretnie tą liczbę o która mi chodzi ?


VGT
Troche marny sposob przyjales na przechowywanie tych danych. Od tego sa RELACYJNE bazy danych, zeby przywiazanie elementu do wielu różnych kategorii wyciagnac do osobnej tabeli.

W tej chwili jedno z rozwiazan, jakie widze, to regexp'y

  1. SELECT * FROM `tabela` WHERE `pole` REGEXP '^([0-9\\+]+\\+)?5([\\+[0-9\\+]+)?$';


inna opcja, to bardziej rozbudowany where:

  1. SELECT * FROM `tabela` WHERE `pole` LIKE "5+%" OR `pole` LIKE "%+5+%" OR `pole` LIKE "%+5" OR `pole` = "5"


Te sposoby będą działać, ale trzymając się ich brniesz w problemy. O ile jest możliwość - rozważ przeprojektowanie bazy
mefistofeles
Dzięki za pomoc!

Mam jeszcze jeden problem.

Jak już mówiłem w polu 'data' mam dane zapisane w ten sposób:

5+15+10+21

i teraz chciałbym zliczyć za pomocą selecta ilość wystąpień liczby 15
w danej tabeli, robiąc to analogicznie do poprzedniego przykładu:

  1. $wynik = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM filmiczki WHERE category LIKE '%+".$_GET['cat']."+%' OR category LIKE '%+".$_GET['cat']."' OR `category` = '".$_GET['cat']."' and (".$numerdoogladania.")"));
  2. $l_odp = $wynik[0];
  3. echo $l_odp;

No i nie wiem dlaczego ale nie działa tu LIKE, zlicza tylko wystąpienie liczby 15 samodzielnie, czyli
ta ostatnia część kodu tylko się wykonuje:

  1. OR `category` = '".$_GET['cat']."'


Dlaczego nie potrafi obliczyć tych LIKE questionmark.gif
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.