我有3个表:PHP和MySQL过滤多个表
用户
- ID
- 名
类别
- ID
- 名
帖子
- ID
- 标题
- 内容
- USER_ID
- CATEGORY_ID
我正在做一个过滤器(如实时搜索)与jQuery。具有多个字段的表单表示列出帖子的不同列。
<form onkeyup="filter()">
<input name="post_id" />
<input name="post_title" />
<input name="post_content" />
<input name="user_name" />
<input name="category_name" />
//order by column
<select name="col">
<option value="post_id">post_id</option>
<option value="post_title">post_title</option>
<option value="post_content">post_content</option>
<option value="user_name">user_name</option>
<option value="category_name">category_name</option>
</select>
//direction
<select name="dir">
<option value="DESC">DESC</option>
<option value="ASC">ASC</option>
</select>
//limit number of results
<input name="lim"/>
</form>
比我POST这个值通过jQuery到.php文件,将查询数据库。
但为了筛选“职位”的类别名称或用户名我有或任何其他值的职位表我已经在posts表中重复这些列。 目前我有此查询:
$query = mysql_query("
SELECT *
FROM posts
WHERE id LIKE '%$id%'
AND title LIKE '%$title%'
AND content LIKE '%$content%'
AND user_id LIKE '%$user_id%'
AND user_name LIKE '%$user_name%'
AND category_id LIKE '%$category_id%'
AND category_name LIKE '%$category_name%'
ORDER BY $col $dir
$_lim
") or die (mysql_error());
比我返回行是这样的:
while($post = mysql_fetch_assoc($query))
{
echo "<tr>";
echo "<td>" . $post['id'] . "</td>";
echo "<td>" . $post['title'] . "</td>";
echo "<td>" . $post['content'] . "</td>";
echo "<td>" . $post['category_name'] . "</td>";
echo "<td>" . $post['user_name'] . "</td>";
echo "</tr>";
}
如何使一个查询,其他表内搜索,这样我就不必重复列帖子表?
我会使用或者替代和... 并把'选择id'。 – 2012-08-11 22:14:38