Php 为什么我有这个;未定义索引错误:id在…“中”;?
注意:第134行的C:\wamp\www\bidding\view\ctgryedit.php中的未定义索引:id 我在执行编辑操作时收到此通知。我给出的代码是Php 为什么我有这个;未定义索引错误:id在…“中”;?,php,Php,注意:第134行的C:\wamp\www\bidding\view\ctgryedit.php中的未定义索引:id 我在执行编辑操作时收到此通知。我给出的代码是 <?php $cid=$_GET['id']; $con=mysql_connect('localhost','root','')or die("error in connection"); mysql_select_db('bidding',$con) or die("error in db"); $sql=
<?php
$cid=$_GET['id'];
$con=mysql_connect('localhost','root','')or die("error in connection");
mysql_select_db('bidding',$con) or die("error in db");
$sql="select * from category where `catgry_id`='$cid'";
$res=mysql_query($sql,$con);
$row=mysql_fetch_array($res);
?>
在盲目使用数组索引之前,需要检查它们。试试像这样的东西
$cid = isset($_GET['id']) ? $_GET['id'] : null; // or some other sane default
关于脚本失败的原因,您确定要通过HTTP调用脚本(或包含您的脚本),并在查询字符串中使用?id=something
。我想到了两种可能性:
输入错误:可能是您错误地输入了参数名,或者它是通过POST发送的,而不是通过错误或错误获取的
参数列表为空,因为您直接调用脚本ctgryedit.php而不是ctgryedit.php?id=foo
在第二种情况下,您可以通过以下方式检查是否有任何GET数据:
if ($_GET) {
//Your code
}
else {
//File has been called directly without any parameter
}
这听起来可能很荒谬,但这些可能性是您能找到的最常见的bug,也是程序员最后想到的bug。您使用的是GET方法
检查你的网址,应该是这样的
localhost/pageName.php?id=5
如果没有,您的表单有问题
检查表单方法是否为“GET”,并
您已经为id指定了name属性
<form method='get' id='thisForm'>
<input type='text' name='id' />
<input type='submit' value="Submit" />
</form>
我认为你的方法更好,因为它将它简化为一行,并且可读性更好(主观)。我也使用这种检查来避免未定义的索引和缺少的值。
if(isset($_GET['id']))
{
$cid=$_GET['id'];
// SQL query
}