开发者

efficient way to query a list of content, each content need to get list of tags and categories

开发者 https://www.devze.com 2023-01-28 02:59 出处:网络
Here is my tables and my current method. Too much query, so any most efficient way to do this? Table: contents

Here is my tables and my current method. Too much query, so any most efficient way to do this?

Table: contents
content_id

Table: taxonomy_terms
tt_id
type (tag or category)
name

Table: relationships
content_id
tt_id

Pseudo code:

mysql: query limit 20 contents from **contents**
php开发者_如何学JAVA: for each content 
    mysql: query tags and categories from **relationships** with content_id

Number of queries: 1 + 20 = 21


You can iterate the first query first, and do something like

$ids = array();
$contents = array();
while ($row = $res->fetch_assoc())
{
  /* your existing code */
  /* such as fill-up an array */
  $contents[$row['content_id']] = $row;

  $ids[] = $row['content_id'];
}

$sql = 'SELECT ... WHERE tt_id in('.implode(',', $ids).')';
/* fetch the tag/category results */
/* and update $contents with tag/category results */

With this, need two queries.
And an additional PHP loop for 20 contents you have in the first query

0

精彩评论

暂无评论...
验证码 换一张
取 消