我收到以下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>
答案 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>