Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确显示PHP/MySQL相同GET名称的URL中的多个参数_Php_Mysql_Url_Mysqli_Parameters - Fatal编程技术网

如何正确显示PHP/MySQL相同GET名称的URL中的多个参数

如何正确显示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

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.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中的
标记
列是如何定义的?