Php 如何通过在\u集中查找\u来搜索多个项目?
我在数据库中有一个user_privilege列,如下所示:Php 如何通过在\u集中查找\u来搜索多个项目?,php,Php,我在数据库中有一个user_privilege列,如下所示: username user_privilege a 7gz,agt_courses,newbill b dataDisplay,previllige,newUsers c newbill,dataDisplay,previllige 我想在用户权限列中搜索我在每个中使用的每个值,或者在每个在\u集合中查找\u中使用
username user_privilege
a 7gz,agt_courses,newbill
b dataDisplay,previllige,newUsers
c newbill,dataDisplay,previllige
我想在用户权限列中搜索我在每个中使用的每个值,或者在每个在\u集合中查找\u
中使用的每个值,但我所做的不正确
我编写php代码:
ob_start();
session_start();
$username = $_POST['username'];
$username2 = $_POST['username2'];
$finduser = mysqli_query($link,"SELECT * FROM LOGIN
WHERE username='".$username."' AND username2='".$username2."'
AND FIND_IN_SET('7gz', user_previllige) OR FIND_IN_SET('agt_courses',user_previllige) OR FIND_IN_SET('newbill',user_previllige) OR FIND_IN_SET('new_Trainee',user_previllige)OR FIND_IN_SET('dataDisplay',user_previllige) OR FIND_IN_SET ('previllige',user_previllige) OR FIND_IN_SET('newUsers',user_previllige) OR FIND_IN_SET('Customers ',user_previllige )")
or die("error");
if(mysqli_num_rows($finduser) !=0)
{
while($row = mysqli_fetch_array($finduser))
{$uname = $row['username'];
$uname2 = $row['username2'];
$arr=explode(",",$row['user_previllige']);
//if($arr=='dataDisplay'){echo 'yes';}//elseif($arr=='new_Trainee'){echo 'yes';}
}
}
if($username == $uname && $username2 == $uname2)
{$_SESSION['sessionname'] =$uname;
$_SESSION['sessionname2'] =$uname2;
$_SESSION['sessionpre'] =$arr;
header ("location:../agtSite/agt2 - Copy.php");
//echo '<meta http-equiv="refresh" content="1" url="../agtSite/agt2 - Copy.php"/>';
}
else echo 'اسم المستخدم غير موجود <a href="login.php"> اذهب للتسجيل مره اخري </a> ';
}
ob_end_flush();
ob_start();
会话_start();
$username=$_POST['username'];
$username2=$\u POST['username2'];
$finduser=mysqli_query($link,“从登录中选择*)
其中username='“$username.”和username2='“$username2.”
在集合中查找(“7gz”,用户预览)或在集合中查找(“agt”,用户预览)或在集合中查找(“newbill”,用户预览)或在集合中查找(“newUsers”,用户预览)或在集合中查找(“new\u培训生”,用户预览)或在集合中查找(“dataDisplay”,用户预览)或在集合中查找(“previllige”,用户预览)或在集合中查找(“newUsers”,用户预览)或在集合中查找(“客户”,用户(previllige)”)
或死亡(“错误”);
if(mysqli_num_行($finduser)!=0)
{
while($row=mysqli\u fetch\u数组($finduser))
{$uname=$row['username'];
$uname2=$row['username2'];
$arr=分解(“,”,$row['user\u previllige']);
//如果($arr=='dataDisplay'){echo'yes';}//elseif($arr=='new_trainer'){echo'yes';}
}
}
如果($username==$uname&&$username2==$uname2)
{$_SESSION['sessionname']=$uname;
$\会话['sessionname2']=$uname2;
$\会话['sessionpre']=$arr;
标题(“位置:../agtSite/agt2-Copy.php”);
//回声';
}
其他的回音是“不”或“不”的;
}
ob_end_flush();
但它不起作用
是否有多个搜索的解决方案????您的脚本中有一个输入错误。列名是user\u privilege
,您在查询中使用了user\u previlige
使用
请查看此查询:
SELECT
*
FROM
LOGIN
WHERE
username = 'a'
AND
(
FIND_IN_SET( '7gz' ,user_privilege )
OR FIND_IN_SET( 'agt_courses' ,user_privilege )
OR FIND_IN_SET( 'newbill' ,user_privilege )
OR FIND_IN_SET( 'new_Trainee' ,user_privilege )
OR FIND_IN_SET( 'dataDisplay' ,user_privilege )
OR FIND_IN_SET( 'previllige' ,user_privilege )
OR FIND_IN_SET( 'newUsers' ,user_privilege )
OR FIND_IN_SET( 'Customers' ,user_privilege )
)
使用以下测试表和测试数据进行测试。有效:
--
-- Table structure for table `login`
--
CREATE TABLE IF NOT EXISTS `login` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) NOT NULL DEFAULT '',
`user_privilege` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- Dumping data for table `login`
--
INSERT INTO `login` (`id`, `username`, `user_privilege`) VALUES
(1, 'a', '7gz,agt_courses,newbill'),
(2, 'b', 'dataDisplay,previllige,newUsers'),
(3, 'c', 'newbill,dataDisplay,previllige');
好的,但是我在我的文件中写的是正确的。阅读中的问题是错误的,有些用户进入agt页面。正确的阅读是所有用户进入agt页面。上面的文件中有一个打字错误。你是指同一个文件还是其他文件?好的,我编辑了它,但这不是问题。阅读中的问题是错误的,有些用户转到agt页面。哪个是正确的读数是所有用户都进入agtpage@user2890838酷,没问题。你可能想选择我的答案作为选择。干杯。。。
--
-- Table structure for table `login`
--
CREATE TABLE IF NOT EXISTS `login` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) NOT NULL DEFAULT '',
`user_privilege` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- Dumping data for table `login`
--
INSERT INTO `login` (`id`, `username`, `user_privilege`) VALUES
(1, 'a', '7gz,agt_courses,newbill'),
(2, 'b', 'dataDisplay,previllige,newUsers'),
(3, 'c', 'newbill,dataDisplay,previllige');