未定义的索引错误

时间:2013-04-08 12:17:38

标签: php indexing undefined

我想将这些记录插入数据库。

 for($i=0;$i<=2;$i++){

            echo $_POST['fname'][$i];
            echo $_POST['mname'][$i];
            echo $_POST['lname'][$i];
            echo $_POST['email'][$i];
            echo $_POST['URL'][$i];
            echo $_POST['Affiliation'][$i];
            echo $_POST['country'][$i];


         $author=  mysql_query("") or die(mysql_error());
      }

直到这些它完美地显示了所有记录。但我想将这些数据用于插入查询。所以当我将它们存储到变量中时,它会显示错误。

我这样做

for($i=0;$i<=2;$i++){

            $fname.$i= $_POST['fname'][$i];
            echo $fname.$i;
            $lname.$i= $_POST['mname'][$i]; //line 4
            echo $lname.$i;                 //line 5     
            echo $_POST['lname'][$i];       //line 6  
            echo $_POST['email'][$i];       //line 7 
            echo $_POST['URL'][$i];         //line 8   
            echo $_POST['Affiliation'][$i]; //line 9
            echo $_POST['country'][$i];     //line 10


         $author=  mysql_query("") or die(mysql_error());
      }

但是我显示错误,

Undefined index at line 4
Undefined index at line 5
Undefined index at line 6
Undefined index at line 7
Undefined index at line 8
Undefined index at line 9

为什么会这样? Thanx提前

5 个答案:

答案 0 :(得分:1)

如果你看看

$fname.$i= $_POST['fname'][$i];
echo $fname.$i;
$lname.$i= $_POST['mname'][$i]; //line 4
echo $lname.$i;                 //line 5    

您发现自己在第2行和第4行设置了$i $i= $_POST['mname'][$i];将代码更改为

$fname[$i]= $_POST['fname'][$i];
echo $fname[$i];
$lname[$i]= $_POST['mname'][$i]; //line 4
echo $lname[$i];                 //line 5    

在PHP中.太多了两个字符串

答案 1 :(得分:0)

您正在$i中将变量$i= $_POST['fname'][$i];设置为废话。

顺便说一下:$fname.$i=...是什么意思?你在这里设置$i,然后将结果与某些东西连接起来并忘掉它......它与$i=...

几乎相同

您的意思是$fname[$i] = ...吗?

答案 2 :(得分:0)

 $fname.$i 

将$ fname连接到$ i作为字符串

 $fname['i'] or $fname->i addresses i in $fname

警告1 不要使用不推荐使用的mysql_接口。请改用mysqli或PDO。

警告2 从$ _POST收集数据后,请不要忘记使用

清理它们
 $str = mysqli_real_escape_string($str);

避免SQL注入攻击的功能。

http://php.net/manual/en/mysqli.real-escape-string.php

答案 3 :(得分:0)

试试这个

for($i=0;$i<=2;$i++){

        $fname[$i]= $_POST['fname'][$i];
        echo $fname[$i];
        $lname[$i]= $_POST['mname'][$i]; //line 4
        echo $lname[$i];                 //line 5     
        echo $_POST['lname'][$i];       //line 6  
        echo $_POST['email'][$i];       //line 7 
        echo $_POST['URL'][$i];         //line 8   
        echo $_POST['Affiliation'][$i]; //line 9
        echo $_POST['country'][$i];     //line 10


     $author=  mysql_query("") or die(mysql_error());
  }

答案 4 :(得分:0)

尝试这样,如果没有工作则注释掉

$lname[$i] = isset($_POST['mname'])[$i];