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