未定义的变量记录

时间:2015-01-21 12:56:27

标签: php

我收到以下PHP错误:undefined variable record

因为我是PHP的新手,请告知我做错了什么。这是我的代码的一部分,下面是我收到错误。

if(isset($_GET['id'])){
  $record = mysql_fetch_assoc(mysql_query("SELECT * from accounts WHERE  id = '$_GET[id]'"));
  foreach($record as $key=>$val) $record[$key] = stripslashes($val);
}

<tr>
  <td width="28%"><div align="right">Name</div></td>
  <td width="72%"><input type="text" name="name" value="<?php echo $record['name'] ?>"/></td>
</tr>

2 个答案:

答案 0 :(得分:0)

在您的表格中,您拨打<?php echo $record['name'] ?>,但$record仅在您的if语句中设置。这意味着,如果你的if语句不正确,它将被跳过并且永远不会设置$ record。

一个简单的解决方法是添加一个else子句来捕获没有设置id的情况。

if(isset($_GET['id'])){
    $record = mysql_fetch_assoc(mysql_query("SELECT * from accounts WHERE  id = '$_GET[id]'"));
    foreach($record as $key=>$val) $record[$key] = stripslashes($val);
} else {
    // No id set, set an empty record
    $record = array('name' => null);
}

答案 1 :(得分:0)

您只是在没有get变量ID的情况下访问。因此,变量$ record永远不会初始化,并且错误会提示输出。

您可以修复它在if语句之前初始化它或仅在设置或不为空时回显其值:

if(isset($_GET['id'])){
    $record = mysql_fetch_assoc(mysql_query("SELECT * from accounts WHERE  id = '$_GET[id]'"));
    foreach($record as $key=>$val) $record[$key] = stripslashes($val);
}

<tr>
  <td width="28%"><div align="right">Name</div></td>
  <td width="72%"><input type="text" name="name" value="<?php echo (!empty($record['name']))?$record['name']:""; ?>"/></td>
</tr>