如何包含if(查询中的isset)

时间:2013-11-05 13:41:12

标签: php session notice

这段代码给出了注意:未定义的索引:placeno1

我知道可以使用if(isset())修复它,但我不知道如何将这个放在这个$ query行中的正确内容上。

尝试了很多,但无法做到。

<?php 
$query = mysql_query("SELECT `id` FROM `place` WHERE `placeno` = '".$_SESSION['placeno'.$i]."' LIMIT 1");
while($row = mysql_fetch_object($query)){
?>

解决方案

<?php 
if(isset($_SESSION['placeno'.$i])) {
$query = mysql_query("SELECT `id` FROM `place` WHERE `placeno` = '".$_SESSION['placeno'.$i]."' LIMIT 1");
while($row = mysql_fetch_object($query)){
}
}
?>

2 个答案:

答案 0 :(得分:2)

未定义索引是一个数组通知。因此可能的通知来源是'placeno'.$i。你需要在每个循环中检查它。

我假设您使用for()循环来循环此代码。这就是$i的来源。

<?php 
if (isset($_SESSION['placeno'.$i])) {
    $query = mysql_query("SELECT `id` FROM `place` WHERE `placeno` = '".$_SESSION['placeno'.$i]."' LIMIT 1");
    while($row = mysql_fetch_object($query)){
    }
}
?>

如果是循环,你可以像这样停止循环:

<?php 
if (!isset($_SESSION['placeno'.$i])) {
    break;
}
$query = mysql_query("SELECT `id` FROM `place` WHERE `placeno` = '".$_SESSION['placeno'.$i]."' LIMIT 1");
while($row = mysql_fetch_object($query)){
?>

答案 1 :(得分:0)

使用三元运算符:

 $query = mysql_query("SELECT `id` FROM `place` 
      WHERE `placeno` = '".isset($_SESSION['placeno'.$i])?$_SESSION['placeno'.$i]:""."' 
      LIMIT 1");
  while($row = mysql_fetch_object($query)){

......以及消毒和mysqli_函数:P