Php 找不到变量错误

Php 找不到变量错误,php,html,syntax,Php,Html,Syntax,嘿,有人注意到这段代码中有错误吗 <?php include("config.php"); if(isSet($_POST['lastmsg'])) { $lastmsg = $_POST['lastmsg']; $lastmsg = mysql_real_escape_string($lastmsg); $result = mysql_query("SELECT * FROM updates

嘿,有人注意到这段代码中有错误吗

<?php
include("config.php");
if(isSet($_POST['lastmsg']))
{
  $lastmsg = $_POST['lastmsg'];
  $lastmsg = mysql_real_escape_string($lastmsg);
  $result  = mysql_query("SELECT * 
                            FROM updates 
                           WHERE update_time < '$lastmsg' 
                        ORDER BY msg_id DESC
                           LIMIT 9");
  while($row=mysql_fetch_array($result))
  {
    $msg_id  = $row['update_time'];
    $message = $row['item_content'];
  ?>
   <li>
     <?php echo $message; ?>
   </li>
  <?php
  }
  ?>

  //More Button here $msg_id values is a last message id value.
  <div id="more<?php echo $msg_id; ?>" class="morebox">
  <a href="#" id="<?php echo $msg_id; ?>" class="more">more</a>
  </div>
  <?php
}
?>

任何人都可以看到任何错误,请评论。谢谢

这里的问题是如果这个while循环不运行,$msg\u id将永远不会被设置。要解决此问题,请将$msg_id设置为循环外部的默认值,即,或者在您想要访问它时检查它是否存在

一个例子可能是

$msg_id = "";
while(/* conditions */){
  //body
}


这里的问题是如果这个while循环不运行,$msg\u id将永远不会被设置。要解决此问题,请将$msg_id设置为循环外部的默认值,即,或者在您想要访问它时检查它是否存在

一个例子可能是

$msg_id = "";
while(/* conditions */){
  //body
}


是的。如果while循环没有定义角色$msg\u id。这不是一个错误,只是一个通知。如果不需要此消息,请使用错误报告功能

错误报告E\u所有^E\u通知


只要把它放在脚本的开头就行了。如果while循环没有定义角色$msg\u id。这不是一个错误,只是一个通知。如果不需要此消息,请使用错误报告功能

错误报告E\u所有^E\u通知


只要在第二次出现$msg_id时将其放在脚本的开头,您就假定它已经定义,但是如果while循环根本不循环,它就不会循环。

在第二次出现$msg_id时,您假定它已经定义,但是如果while循环根本不循环,不会的。

$msg\u id的作用域在while循环中。您必须在范围之外声明它

问题的演示

解决方案:

在while循环之前添加以下内容:

$msg_id = '';
$message = '';

我希望它能有所帮助。

$msg\u id的作用域在while循环中。您必须在范围之外声明它

问题的演示

解决方案:

在while循环之前添加以下内容:

$msg_id = '';
$message = '';

我希望它能有所帮助。

您假设$result总是返回一些东西,因为$msg\u id是在while循环中定义的。在尝试获取变量值之前,您可以通过插入条件来检查msg_id是否已设置,例如:

<?
if (isset($msg_id)) {
 //More Button here $msg_id values is a last message id value.?>
 <div id="more<?php echo $msg_id; ?>" class="morebox">
 <a href="#" id="<?php echo $msg_id; ?>" class="more">more</a>
}
此外,以下行看起来不正确:

</li>
<?php
}
?>
* Missing <? here *
//More Button here $msg_id values is a last message id value.

假设$result总是返回一些东西,因为$msg_id是在while循环中定义的。在尝试获取变量值之前,您可以通过插入条件来检查msg_id是否已设置,例如:

<?
if (isset($msg_id)) {
 //More Button here $msg_id values is a last message id value.?>
 <div id="more<?php echo $msg_id; ?>" class="morebox">
 <a href="#" id="<?php echo $msg_id; ?>" class="more">more</a>
}
此外,以下行看起来不正确:

</li>
<?php
}
?>
* Missing <? here *
//More Button here $msg_id values is a last message id value.

-1:你是说下面的代码应该发出通知吗?因为它不是-1:你是说下面的代码应该发出通知吗?因为它不是。我刚才回答了问题,没有错。对于任何需要了解任务的建议,啊哈。实际上$msg_id=;在这种情况下,关闭E_通知的工作是相同的。向下投票按钮的标签是:此答案不可用,而不是此答案有错误。另外,这将关闭脚本中的所有通知,因此不,它与$msg_id=的任务不同,它的性能更差。我刚刚回答了问题,没有错误。对于任何需要了解任务的建议,啊哈。实际上$msg_id=;在这种情况下,关闭E_通知的工作是相同的。向下投票按钮的标签是:此答案不可用,而不是此答案有错误。另外,这会关闭脚本中的所有通知,因此不,它不会与$msg_id=进行相同的作业,它的效果更差。