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

时间:2019-02-16 16:45:17

标签: php mysql url mysqli parameters

我的参数在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_images表中显示带有3个不同标签的所有图像。

这是我的网址的样子,但是它只显示一个标签,而不显示全部3:

https://www.example.com/app/user-tags.php?tags=aesthetic&tags2=food&tags3=dogs

第一个参数有效,但并非全部。谁能帮助我我哪里出错了?

我考虑过做类似的事情,在查询中使用tags = aesthetic,food,dogs。但是问题在于,我认为结果将显示为“查找带有beautyfooddogs标签的所有图像”,而不是带有审美,食物和狗的标签。

1 个答案:

答案 0 :(得分:2)

听起来您想在表格的tags列中查找并找到URL中传递的值的任何匹配项。如果要查找任何标记值,请改用ANDOR

$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")
相关问题