PHP_MYSQL - 根据特定文件在两个查询之间进行选择

时间:2018-03-29 09:55:58

标签: php mysql

我想做一个能做出选择的功能。但问题是第一个条件总是如此。所以我想根据所选文件在这两个select之间切换。

<?php
function select_cat(){
    if (file('index_cms.php')){
        return "SELECT * FROM posts_anon";
    } elseif(file('category.php')){
        return "SELECT * FROM posts_anon WHERE category = '$_GET[cat_name]'";
    }
    return 1;
}

select_cat();
$run_side = mysqli_query($connexion, select_cat());
?>

也许有人可以帮我解决这个问题。 谢谢。

更新:

好的,我根据Mazhar Hussain的帖子找到了解决方案。

<?php
function select_cat()
{
  if (isset($_GET['cat_name'])) {
    if ($_GET['cat_name'] == true && file('category.php')) {
        return "SELECT * FROM posts_anon WHERE category = '$_GET[cat_name]'";
      } else {
        return '';
      }
   } else {
    return "SELECT * FROM posts_anon";
   }
}
select_cat();
$run_side = mysqli_query($connexion, select_cat());
?>

我改变了订单。首先,我验证$ GET _ ['cat_name']中是否存在某些内容,以及它是否与category.php文件匹配。 如果一切都没问题,那么使用第二个“SELECT”。 如果不匹配,则不返回任何内容或返回第一个“SELECT”。

大家好。

1 个答案:

答案 0 :(得分:0)

基本上你要找的是服务器当前正在执行的脚本名称,如下所示:

<?php
function select_cat()
{
    $fname = basename(__FILE__, '.php');
    if ($fname == 'index_cms.php'){
        return "SELECT * FROM posts_anon";
    } elseif($fname == 'category.php'){
        return "SELECT * FROM posts_anon WHERE category = '$_GET[cat_name]'";
    }
    return 1;
}

select_cat();
$run_side = mysqli_query($connexion, select_cat());
?>