如何正确显示PHP/MySQL相同GET名称的URL中的多个参数
My参数在MySQL数据库中有不同的名称(如何正确显示PHP/MySQL相同GET名称的URL中的多个参数,php,mysql,url,mysqli,parameters,Php,Mysql,Url,Mysqli,Parameters,My参数在MySQL数据库中有不同的名称(tags、tags2、tags3),但有相同的GET方法,或者换句话说,有相同的列名(tags) 代码如下: $tags = $_GET['tags']; $tags2 = $_GET['tags']; $tags3 = $_GET['tags']; $fetch = mysqli_query($conn, "SELECT * FROM users JOIN user_images ON users.username = user_images.use
tags、tags2、tags3
),但有相同的GET方法,或者换句话说,有相同的列名(tags
)
代码如下:
$tags = $_GET['tags'];
$tags2 = $_GET['tags'];
$tags3 = $_GET['tags'];
$fetch = mysqli_query($conn, "SELECT * FROM users JOIN user_images ON users.username = user_images.username WHERE tags = '$tags' AND tags = '$tags2' AND tags = '$tags3' ORDER BY users.id DESC");
基本上,我试图在user\u images
表中显示所有带有3个不同标签的图像
以下是我的URL的外观,但它只显示一个标记,而不是全部3个:
第一个参数有效,但并非所有参数都有效。谁能帮我找出哪里出了问题
我考虑过这样做,在查询中添加
标签=美学、食物、狗。但问题是,我认为结果应该是“查找所有带有美学食品标签的图像”,而不是带有美学、食品和狗的标签。听起来您想查看表中的标签列,并查找URL中传递的值的匹配项。如果要查找任何标记值,请将和
改为或
$tags = $_GET['tags'];
$tags2 = $_GET['tags2'];
$tags3 = $_GET['tags3'];
$fetch = mysqli_query($conn, "SELECT * FROM users
JOIN user_images ON users.username = user_images.username
WHERE tags LIKE '%" . $tags . "%' OR
tags LIKE '%" . $tags2 . "%' OR
tags LIKE '%" . $tags3 . "%'
ORDER BY users.id DESC")
更改$tags2=$\u获取['tags']
到$tags2=$\u GET['tags2']
并对tags3执行相同的操作。@Dave好的,我执行了,对$tags3
执行了相同的操作,但这次没有显示任何内容。我认为$\u GET
保存了SQL数据库中的列名称,这就是为什么我保持它不变。$\u GET
是URL中的参数数组。您使用的示例URL有3个名称和值:标记、标记2和标记3。标签包含美学,标签2包含食物,标签3包含狗。如果您var\u dump($\u GET)代码>在你发布代码之前你得到了什么?以下是代码之前的结果,数组(3){[“tags”]=>string(9)“美学”[“tags2”]=>string(4)“食物”[“tags3”]=>string(4)“狗”}
。我也对$_GetChanges做了修改,得到了相同的结果。我的第一条评论是正确的,尤其是在你刚刚验证了我所说的之后<代码>$tags2=$\u GET['tags2']
将导致$tags2
包含食品
。您的SQL查询中存在混淆。SQL中的标记列是如何定义的?