如何包含 if(isset 在查询中


How-to include if(isset inside a query

这一小段代码给出了 注意:未定义的索引: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)){
}
}
?>

未定义的索引是一个数组通知。所以可能的通知来源是'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)){
?>

使用三元运算符:

 $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