不在PHP中将结果提取到Array中

时间:2013-02-12 21:28:26

标签: php mysql

我在MySQL数据库中的数据是

'1','Demo','Demo1','测试'

在线'echo $ row [2]'它给出错误“通知:未定义的偏移量:2”

任何解决方案.. ?? PHP代码如下...

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
</head>
<body>
    <?php

    $uname=$_POST['txtUserName'];
    $passwd=$_POST['txtPassword']; 

    $query="SELECT usernm,passwd FROM tbuserdemo WHERE usernm='$uname'";
    $result=  mysql_query($query);
    $rows=  mysql_num_rows($result); 

    if($rows==0)
    {
        echo "User Name is Wrong";
    }
    else
    {
        $row=mysql_fetch_row($result);
        $encpasswd=  encrypt(1, $passwd);        


        if ($row[1]==$encpasswd)
        {            
            echo "Welcome $uname";
            echo $row[2];
        }
        else
        {
            echo "Password is Wrong";
        }
    }


    ?>
</body>
</html>

6 个答案:

答案 0 :(得分:3)

您只从数据库SELECT usernm,passwd获取2个字段,因此您应该只有$row[0]$row[1]的值。数组索引从零开始。

答案 1 :(得分:0)

欢迎编程。许多语言都这样做,数组索引从0 NOT 1开始。所以你需要做

if ($row[0]==$encpasswd)
        {            
            echo "Welcome $uname";
            echo $row[1];
        }

答案 2 :(得分:0)

它是$row[0]$row[1]。请记住,PHP的数组是从零开始的。要获得$ row [2],您必须在查询中选择 THREE 字段。

答案 3 :(得分:0)

改为:

   if ($row[0]==$encpasswd)
    {            
        echo "Welcome $uname";
        echo $row[1];
    }
    else
    {
        echo "Password is Wrong";
    }
}


?>

数组中的第一个索引位于位置0(不是1)

答案 4 :(得分:0)

数组以0开头。

试试这个:

    if ($row[0]==$encpasswd)
    {            
        echo "Welcome $uname";
        echo $row[1];
    }
    else
    {
        echo "Password is Wrong";
    }

答案 5 :(得分:0)

您可能想要了解SQL Injection次攻击。至少如果您打算在开发/测试环境之外发布该代码。