用户被要求选择位置和美食来搜索附近的餐厅。现在,如果用户只选择特定的菜肴,那么所有的餐厅都应该从数据库和相同的案例位置中选择.这里只是回声的第一部分,而不是其他两个条件。救命啊!!请不要考虑注射
下面给出了用户重定向的php部件。
<?php
if(isset($_REQUEST['location']) && $_REQUEST['cuisine'])
{
$sql="SELECT * FROM `restaurant` WHERE `location_id`='".$_REQUEST['location']."' and `cuisine_id`='".$_REQUEST['cuisine']."' ORDER BY restaurant_name ";
echo"qu";
}
elseif(isset($_REQUEST['location']) && $_REQUEST['cuisine'] ='all cuisine')
{
$sql="SELECT * FROM `restaurant` WHERE `location_id`='".$_REQUEST['location']."' ORDER BY restaurant_name ";
echo"here are result";
}
elseif(isset($_REQUEST['cuisine']) && $_REQUEST['location'] ='all location')
{
$sql="SELECT * FROM `restaurant` WHERE `cuisine_id`='".$_REQUEST['cuisine']."' ORDER BY restaurant_name ";
echo"query";
}
else
{
echo"no result found";
}
?>发布于 2014-02-21 18:51:58
为了使$_REQUEST['cuisine']等同于“所有美食”,首先需要设置变量$_REQUEST['cuisine']。地点也是。
因此,每当isset($_REQUEST['cuisine'])是真(同样也是位置)时,$_REQUEST['cuisine'] === 'all cuisine'都是真的,这就是为什么这两种情况永远不会发生的原因--它们都被isset($_REQUEST['location'] && $_REQUEST['cuisine'])抢占。
我想你要找的是:
<?php
if(isset($_REQUEST['location'], $_REQUEST['cuisine']))
{
if($_REQUEST['cuisine'] === 'all cuisine')
{
$sql="SELECT * FROM `restaurant` WHERE `location_id`='".$_REQUEST['location']."' ORDER BY restaurant_name ";
echo"here are result";
}
elseif($_REQUEST['location'] === 'all location')
{
$sql="SELECT * FROM `restaurant` WHERE `cuisine_id`='".$_REQUEST['cuisine']."' ORDER BY restaurant_name ";
echo"query";
}
else
{
$sql="SELECT * FROM `restaurant` WHERE `location_id`='".$_REQUEST['location']."' and `cuisine_id`='".$_REQUEST['cuisine']."' ORDER BY restaurant_name ";
echo"qu";
}
}
else
{
echo"no result found";
}
?>PS:根据其他评论,http://php.net/ternary也值得注意。
发布于 2014-02-21 18:46:31
$_REQUEST['cuisine'] ='all cuisine' 应该是
$_REQUEST['cuisine'] == 'all cuisine'if ($a= 'a')将返回true,它不会比较。
如果你想比较的话
if($a == 'a')下面是一个例子
$a = 'b';
if($a = 'a'){
echo 'here';
}else{
echo 'not here';
}这将输出here
检查这里,http://php.net/ternary
发布于 2014-02-21 18:51:32
单个=分配一个值,而如果左侧的值等于右侧的值,则==返回true。
https://stackoverflow.com/questions/21942690
复制相似问题