gpt4 book ai didi

PHP 和 MySQL 过滤多个表

转载 作者:行者123 更新时间:2023-11-29 02:31:53 25 4
gpt4 key购买 nike

我有 3 个表:

用户

  • 编号
  • 姓名

类别

  • 编号
  • 姓名

帖子

  • 编号
  • 标题
  • 内容
  • 用户编号
  • 类别编号

我正在使用 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>

然后我通过 jQuery 将这些值发布到将查询数据库的 .php 文件。

但是为了使用我拥有的类别名称或用户名或帖子表之外的任何其他值来过滤“帖子”,我在帖子表中复制了这些列。目前我有这个查询:

$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>";
}

如何进行在其他表中搜索的查询,这样我就不必在 posts 表中重复列?

最佳答案

为此使用 SQL JOIN,它将连接内存中的表而不复制它们。W3Schools 有一个很好的例子 - Inner Join

关于PHP 和 MySQL 过滤多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11917943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com