Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Pole w MySQL z danymi tablicowymi
Jdwind
post 28.03.2013, 09:04:06
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 21.12.2007
Skąd: Stalowa Wola

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


Witam,
mam tabelę w MySQL z polem (opis pola to "json encoded data") o nazwie PARAMS, w którym mam takie wartości: {"time":"0","catid":"2","orderby":"0","secure":0}. Przykładowo catid pobieram poprzez $this->catid = $params->get('catid'); i to działa dobrze. Natomiast chciałbym skonstruować zapytanie mniej więcej takiej treści:
  1. $query->select('id AS idm')->from('menu')->where( "(link = 'index.php?option=com_component&view=list') AND (language = 'PL')" );

i dotąd działa, ale chciałbym dodać sprawdzenie właśnie jednej wartości z pola PARAMS np. catid. Jak to zrobić? Próbowałem w zapytaniu dodać:
AND (" .$this->catid == "2" - z cudzysłowiem lub bez - ale wtedy nie działa. Możecie mi podpowiedzieć, jak to poprawnie ułożyć? Podejrzewam, że źle sprawdzam element pola PARAMS, właśnie catid.

Jacek

Poradziłem sobie stosując LIKE, zapytanie wygląda mniej więcej tak:
  1. SELECT * FROM `menu` WHERE `link` = "index.php?option=com_component" AND `params` LIKE '%"catid":"1"%';

Rekordów nie ma dużo (ok 100), mam nadzieję że to dobre rozwiązanie. W każdym bądź razie działa. Oczywiście w LIKE zamiast wartości 1 dam zmienną, tylko tutaj sprawdzałem w PMA czy zadziała ze sztywną wartością.
Pozdrawiam
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: 12.06.2025 - 18:15