在空GET变量上接收错误

时间:2013-04-01 08:58:55

标签: php

我正在构建一个应用程序,为我的团队整体展示各种类型的记录。开始这是菜单(一些 $ _ GET 的信息)

显示此页面的html菜单如下所示:

<li><a href="web.php">WEB department</a>
        <ul>
    <li><a href="web.php?tstname=Mike">Mike</a></li>
        <li><a href="web.php?tstname=Deidre">Deidre</a></li>
</ul>
</li>

拉取网页数据的网​​页,重要的部分如下所示

    $pullWebTeamData = "SELECT * FROM tlm_accounts WHERE type_of_account = 'WEB' ;";
    $pullWebTeamDataDoIt = mysqli_query($c2d, $pullWebTeamData) or die ("could not pull WEB team data" . mysqli_error($c2d));

then further down the page i output the data i want. For example

    while($row = mysqli_fetch_array($pullWebTeamDataDoIt)){
    //do stuff here - - - **this part never changes** 

    }

然后,这将为整个团队提取所有记录。以这种方式,我认为“如果我可以单独显示每个团队成员的记录,那么它会更有用。”

显然,我不打算为公司的所有成员创建一个单独的页面,所以我想重新使用这个页面,这样如果一个GET变量等于一个人名,就会显示某些数据。

这是代码

$tstname= $_GET['tstname'];


    if($tstname == "Mike"){
        $pullWebTeamData = "SELECT * FROM tlm_accounts WHERE type_of_account = 'WEB' ;";
        $pullWebTeamDataDoIt = mysqli_query($c2d, $pullWebTeamData) or die ("could not pull WEB team data" . mysqli_error($c2d));
    } elseif ($tstname == "Deidre"){
        $pullWebTeamData = "SELECT * FROM tlm_accounts WHERE type_of_account = 'WEB' ;";
        $pullWebTeamDataDoIt = mysqli_query($c2d, $pullWebTeamData) or die ("could not pull WEB team data" . mysqli_error($c2d));
    } else {
        $pullWebTeamData = "SELECT * FROM tlm_accounts WHERE type_of_account = 'WEB' ;";
        $pullWebTeamDataDoIt = mysqli_query($c2d, $pullWebTeamData) or die ("could not pull WEB team data" . mysqli_error($c2d));

    }

现在虽然它提取了我想要的数据(名为get link或普通的web链接),但问题是在页面加载时,如果用户点击没有附加$ _GET信息的常规网页链接。它会抛出一个错误,因为此时“$ _GET”位于:

$tstname= $_GET['tstname'];

不存在。如果“$ _GET”不存在,我怎样才能做到这一点。只是忽略它? 感觉就像我应该知道这一点....无论如何,大声笑,

我尝试过像

这样的事情
if(!empty($testname)){ do stuff }

if($testname) //since this equals to true if not empty...

等但无济于事。希望我很清楚。任何提示/帮助等我谦卑地欣赏。

先谢谢。

3 个答案:

答案 0 :(得分:3)

使用isset

if(isset($_GET['tstname'])) {
  // do your stuff
}

答案 1 :(得分:0)

使用三元运算符设置变量。

$tstname= !empty($_GET['tstname'])? $_GET['tstname']: ' ';

 $tstname= isset($_GET['tstname'])? $_GET['tstname']: ' ';

答案 2 :(得分:0)

$ tstname = isset($ _ GET ['tstname'])?$ _ GET ['tstname']:'';