2012-01-05 9 views
1

我有兩個MySQL表:USER和ROSTER。以前,我已經能夠查詢和檢索合適的學生並將用戶引導至適當的頁面。展望未來,我想查詢表格並檢索用戶studentID,名稱,期限和訪問權限。如何從多個mysql表中獲取數據並存儲在用戶會話中?

用戶
studentID

訪問

名冊
ID

$studentID = $_POST['studentID']; 

    $studentID = stripslashes($studentID); 

    $studentID = mysql_real_escape_string($studentID); 
    $getUser_sql = "SELECT * FROM USER, ROSTER WHERE USER.studentID='$studentID'"; 
    $getUser = mysql_query($getUser_sql); 

    $getUser_result = mysql_fetch_assoc($getUser); 

    $getUser_RecordCount = mysql_num_rows($getUser); 

    if($getUser_RecordCount==1){ 



     session_start(); 
     $_SESSION['loggedin'] = TRUE; 
     $_SESSION['studentID'] = $studentID; 


    header("location:login_success.php"); 

    } 

我在做什麼錯?我看過@tizag和@mysql的例子,但我無法理解這一點。

+0

嘗試加入表格,然後從中拉出。 – amlane86 2012-01-05 14:45:38

回答

1

你是不是做了適當的加入,讓我假設的加入爲1〜1:

SELECT studentID, name, access, period 
FROM USER JOIN ROSTER ON user.studentid = roster.id 
WHERE USER.studentID = '$studentID' 

的「ON」是其中的重要組成部分,因爲它定義了加入ON,在此WHERE SQL是OVERALL數據的過濾器。

+0

然而,一個連接也可以被「隱式地」寫成,沒有JOIN關鍵字:''SELECT * FROM USER,ROSTER WHERE user.studentid = roster.id AND USER.studentID ='$ studentID'「';但我同意,加入條件丟失 – codeling 2012-01-05 14:44:17

+0

@nyarlathotep,我喜歡只是保持乾淨,容易閱讀,JOIN .. ON幫助我做到這一點。 – Jakub 2012-01-05 14:46:04

+0

這對我來說很好,只是想指出OP的語法實際上並不是他所需要的;這是一個有趣的問題(儘管可能更多味道)哪種語法更好(可讀或任何)。我通常也使用JOIN語法,但是在某些情況下,我發現在一個地方有參與查詢的所有表的列表更好:D – codeling 2012-01-05 14:57:57

相關問題