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