2013-02-12 21 views
0

我有我在MySQL數據庫中的數據不取結果存入數組中的PHP

'1', '示範', 'demo1的', '測試'

線「回聲$行[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> 
+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-02-12 21:33:14

+0

**您的代碼可以[SQL注入](http://php.net/manual/en/security.database.sql-injection.php)**。**請在使用此代碼之前注意這一點環境。 – 2013-02-12 21:37:20

回答

3

你只是從數據庫中獲取2場,SELECT usernm,passwd所以你應該只$row[0]$row[1]與價值觀。數組索引是從零開始的。

+0

謝謝..我只是..丟失了.. – Anup 2013-02-12 21:47:04

0

歡迎使用編程。很多語言都是這樣做的,數組索引從0開始,不是1。所以,你需要做的

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

這將會是$row[0]$row[1]。請記住,PHP的數組是基於零的。要獲得$ row [2],您必須在查詢中選擇THREE字段。

0

變化到這樣的:

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


?> 

陣列中第一個索引是在0位置(未1)

0

將陣列用0.1

開始嘗試這種情況:

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

您可能想要了解SQL Injection攻擊。至少如果您打算在開發/測試環境之外發布該代碼。