2015-09-27 44 views
0

的ID您好,我有一個這樣的數據庫:mysql的獲取名稱

ID Name Password 
1 Hans ***** 

現在,當我登錄,我得到了名的PHP會議。

現在我想在登錄中獲得我輸入的Name的ID並保存在NameSession中,並將其保存到SESSION中。

我在互聯網上搜索,因爲它看起來不那麼辛苦,但我沒有找到任何東西。

這是我的代碼到目前爲止。

$sql = "SELECT * FROM login WHERE Login='".$loginname."' and Password = '".$loginpassword."'"; 
$result = mysql_query($sql); 
if (mysql_num_rows($result)>0) { //...wenn ein Datensatz mit diesem Nicknamen gefunden wurde: 
    echo "Willkommen ".$loginname; //Fehlermeldung 

    //Session registieren 
    $_SESSION['loginname'] = $loginname; 
    $_SESSION['UserID'] = $User_ID; 

    //Text ausgeben 
header('Location: home.php'); 
exit(); 
} 
+1

請格式化您的問題。 – ergonaut

+1

請避免使用_deprecated_ mysql函數並移至mysqli或PDO。 – user5173426

+0

您的表結構顯示「ID名稱密碼」,其中您的查詢將列名稱顯示爲「登錄名和密碼」。發生了什麼? – user5173426

回答

1

獲取特定記錄的相應id。 假設您的表格結構爲ID Name Password正如您在問題中提到的那樣。根據該您的SQL查詢而應是這樣的:

"SELECT * FROM login WHERE Name ='".$loginname."' and Password = '".$loginpassword."'"; 

更改此:

if (mysql_num_rows($result)>0) { //...wenn ein Datensatz mit diesem Nicknamen gefunden wurde: 
    echo "Willkommen ".$loginname; 

這樣:

if (mysql_num_rows($result)>0) { //...wenn ein Datensatz mit diesem Nicknamen gefunden wurde: 
    $row = mysql_fetch_array($result); 
    echo $row['ID']; 

    //saving the id and username in sessions 
    $_SESSION['loginname'] = $loginname; 
    $_SESSION['UserID'] = $row['ID']; 

注:這仍然是不好的做法,請研究mysqliPDO

PHP Manual: MySQL Improved Extension

PHP Manual: PHP Data Objects

+1

非常感謝你,對,你說得對,我應該開始學習PDO:D – Syrakus

0

變化

$_SESSION['UserID'] = $User_ID; 

$_SESSION['UserID'] = $result['ID']; 

,或者如果你已經列入explode($result) SQL查詢後, $ID變量將可用。

這是假設從查詢中只返回了1行,您可能希望執行循環$result數組(所有返回的行),具體取決於您希望使用登錄工作流程的距離。

+0

謝謝, ) – Syrakus