2012-03-30 23 views
1

我有我的php代碼的情況。在上一頁中,用戶輸入他們的用戶名。現在當他們提交表單時,用戶名將被髮布並在當前頁面上回顯。'SEL'是什麼意思?怎樣才能解決?

E.G如果老師輸入'j.lu'作爲用戶名,它在當前頁面上發佈'j.lu'。

但我想要做的是,我想插入教師的ID在數據庫中。爲此,我設置了一個查詢,通過查找用戶名來選擇教師的ID。所以'j.lu'有一個TeacherId'T1',但它不顯示這是插入時的字段。相反,它在現場陳述'SEL'。

所以我的問題是,'SEL'是什麼意思,我該如何解決它,所以而不是說'SEL'它將陳述老師的id,在這個例子中'T1'。

下面是查詢的代碼,插入和回聲:

$teacherid = "SELECT TeacherId FROM Teacher WHERE (TeacherUsername = '".mysql_real_escape_string($_SESSION['teacherusername'])."')"; 

echo $_SESSION['teacherusername']; 

$sql="INSERT INTO Session (TeacherId) 
VALUES 
(' ". mysql_real_escape_string($teacherid) . "')"; 

mysql_query($sql); 

回答

3

SEL的前三個字符單詞中選擇當您運行查詢

INSERT INTO Session (TeacherId) VALUES ('SELECT TeacherId FROM Teacher WHERE ... 

你需要改變$ teacherid內容:

$teacherid =mysql_real_escape_string($_SESSION['teacherusername']); 

// the escape is already done 
$sql = "INSERT INTO Session (TeacherId) VALUES ('$teacherid')"; 

mysql_query($sql); 

到目前爲止,您有一個表稱爲會話...

編輯

而不是使用用戶名不變,那麼,你必須執行第一個查詢:

$sql = "SELECT TeacherId FROM Teacher WHERE (TeacherUsername = '" 
    . mysql_real_escape_string($_SESSION['teacherusername'])."')"; 
$rs = mysql_query($sql); 
$record = mysql_fetch_array($rs); 
$teacherid = $record['TeacherId']; 

$sql = "INSERT INTO Session (TeacherId) VALUES ('$teacherid')"; 
mysql_query($sql); 
+0

我會測試這個並回復你:) – user1394925 2012-03-30 17:28:26

+0

嗨,它已經刪除了'SEL',並插入了老師的用戶名'j.lu',但我想通過知道老師的用戶名是什麼來包含老師的ID並且能夠接收它的教師ID(TeacherId)。這怎麼能實現? – user1394925 2012-03-30 17:40:35

+0

插入時(j.lu)不是在教師的字段中陳述教師的用戶名,而應該插入其教師ID,即(T1) – user1394925 2012-03-30 17:56:18

1

你$ teacherid設置爲字符串「SELECT TeacherId FROM教師WHERE (TeacherUsername ='mysql_real_escape_string($ _ SESSION ['teacherusername'])')「而不是查詢的結果。