У меня есть три таблицы master_category, category_group и статьи следующим
1) master_categoryЛучшая практика в MySql запросе с PHP
cat_id cat_name
------------------------------
1 Movies
2 Hollywood
3 Bollywood
4 Hollywood Actress
5 Hollywood Actors
6 Mobiles
7 Sony
8 Apple
9 LG
10 Sony Accessories
1) category_group
id Main_Group Sub_Group
--------------------------------------------------
1 1 2
2 1 3
3 2 4
4 2 5
5 6 7
6 6 8
7 6 9
8 7 10
--------------------------------------------------
2) статьи
id title description
----------------------------------------------------------------
1 sample title some description
Таблица запись идет, как это, когда я нажимаю фильмы мне нужно, чтобы получить статьи содержат слово «фильмы», «Голливуд», «Болливуд», «голливудская актриса», «голливудский актер» и т.д. то есть (Подгруппа и к югу от подгруппы и т.д.)
я сделал, как этот
SELECT names.* FROM master_category mc LEFT JOIN category_group sC#level1
ON sc.main_group = mc.cat_id LEFT JOIN category_group sc2 #level2
ON sc2.main_group = sc.sub_group LEFT JOIN master_category names
ON sc.sub_group = names.cat_id OR sc2.sub_group = names.cat_id
where mc.cat_name = 'movies' order by names.cat_id;
из этого запроса я могу получить cat_ имя
$ результат является массив мы получаем из этого результата запроса
$i=0;
foreach($result as $row)
{
if($i!=0) { $query_condition.= "or "; }
$query_condition.= " title like '%".$row['cat_name']."%' or description like '%".$row['cat_name']."%'";
}
это получить результат, как
$query_condition = " title like '%Movies%' or description like '%Movies%' or title like '%Bollywood%' or description like '%Bollywood%' or title like '%Hollywood%' or description like '%Hollywood%' or title like '%Hollywood Actress%' or description like '%Hollywood Actress%' or title like '%Hollywood Actor%' or description like '%Hollywood Actor%'
тогда я написал окончательный запрос следующим образом
select * from articles where $query_condition
это лучшая практика? если у нас будет больше времени для получения конечного результата, то возрастет. есть ли другой лучший способ получить быстрый результат? пожалуйста, советы мне
Лучшая практика будет использовать подготовленные заявления/связываемые переменные –
я не знаю как это сделать, пожалуйста, помогите мне – Shameem
Начните здесь, http://php.net/manual/en/pdo.prepared-statements.php или http://php.net/manual/en/mysqli.quickstart.prepared-statements .php в зависимости от вашего драйвера. – chris85