Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我有这个;未定义索引错误:id在…“中”;?_Php - Fatal编程技术网

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=

注意:第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="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
     }