我有两张表,结构如下:
categories
id
status
name
created
posts
id
status
category_id
title
excerpt
featured_image
created
user_authors
id
status
author_name
created
我正在使用以下查询:
$query = "SELECT posts.id, posts.category_id, user_authors.author_name, posts.user_author_id, posts.title, posts.post_slug, posts.featured_image, posts.excerpt, posts.created FROM posts, user_authors INNER JOIN categories ON(posts.category_id = categories.id) WHERE posts.status = 1 AND categories.name LIKE = %".$_GET['category']."%";
我想做的是,我有一个网址 www.xyz.com/technology
其中技术是一个参数(类别),根据我将选择的职位显示。
我把数据显示在哪里 posts.category_id = categories.id AND category_name = $_GET['category']
我无法提取任何数据,我很困惑,我的查询是错误的还是我的逻辑是错误的?
有人能帮我解决这个逻辑吗?
3条答案
按热度按时间v1uwarro1#
您的查询具有
=
与LIKE
这在mysql中是不正确的。正确的方法应该是,注意移除
=
并用'
编辑:根据您的回复,新的查询应该如下所示。
j5fpnvbx2#
考虑从select中删除用户\u author,因为在命令中没有链接三个表的连接。
fxnxkyjh3#
你不能使用
=
与LIKE
条款和你没有写任何关系posts
以及user_authors
table。正确的查询应该是:
如果你只找到一个
categories.name
您可以删除%
通过查询,这将有助于mysql搜索记录,如果categories.name
列有索引。