【求助】php5連到資料庫mysql4.1的多資料表連線問題.....



贊助商連結


arc
2005-05-13, 09:41 AM
我寫了一個教師管理系統,我是用Dreamweaver MX 2004寫的,在mysql定義了一個資料庫叫account定義了4個資料表,包含基本資料(包含帳號密密)、著作發表(有作者、年份等)、上傳檔案,我在最一開頭,寫了一個登入頁,就是當老師們在用他們自己的帳號登入時,要更改基本資料時,到更改基本資料頁面,會看到自己所屬的資資,這個ok我有寫出來,但問題來了當老師到著作發表的頁面時,老師會看到的是他們自己屬的著作發表文章,而不是全部的,就是因為會連到資料庫裡的2個資料表,所以就不太會連,也就是老師用自己帳號登入後->會從基本資料表裡判斷帳號->在判斷著作發表資料表裡的作者->而著作發表資料表裡的作者欄位和基本資料表裡的姓名欄位應該是一樣的->而最後顯示的是只有他自己的著作發表的資料,也就是自己的帳號登入後只會看到自己帳號的著作發表的資料,不知要怎麼連怎麼link2個資料表,謝謝各位幫忙,不好意思寫這麼多。

贊助商連結


nopy
2005-05-13, 11:30 AM
我寫了一個教師管理系統,我是用Dreamweaver MX 2004寫的,在mysql定義了一個資料庫叫account定義了4個資料表,包含基本資料(包含帳號密密)、著作發表(有作者、年份等)、上傳檔案,我在最一開頭,寫了一個登入頁,就是當老師們在用他們自己的帳號登入時,要更改基本資料時,到更改基本資料頁面,會看到自己所屬的資資,這個ok我有寫出來,但問題來了當老師到著作發表的頁面時,老師會看到的是他們自己屬的著作發表文章,而不是全部的,就是因為會連到資料庫裡的2個資料表,所以就不太會連,也就是老師用自己帳號登入後->會從基本資料表裡判斷帳號->在判斷著作發表資料表裡的作者->而著作發表資料表裡的作者欄位和基本資料表裡的姓名欄位應該是一樣的->而最後顯示的是只有他自己的著作發表的資料,也就是自己的帳號登入後只會看到自己帳號的著作發表的資料,不知要怎麼連怎麼link2個資料表,謝謝各位幫忙,不好意思寫這麼多。

你寫了這麼多,倒不如把資料表結構及你用的 SQL 命令貼出來讓大家幫你

SELECT A.account, A.username, B.article_id, B.article_year
FROM A, B
WHERE A.account = 'someone' AND A.username = B.username

應該是很簡單的 SQL 命令,建議您參考一下 MySQL 的線上文件,會很有幫助的:

http://dev.mysql.com/doc/mysql/en/select.html

arc
2005-05-13, 08:27 PM
你寫了這麼多,倒不如把資料表結構及你用的 SQL 命令貼出來讓大家幫你

SELECT A.account, A.username, B.article_id, B.article_year
FROM A, B
WHERE A.account = 'someone' AND A.username = B.username

應該是很簡單的 SQL 命令,建議您參考一下 MySQL 的線上文件,會很有幫助的:

http://dev.mysql.com/doc/mysql/en/select.html

那請問一下我這樣寫:
$colname_Recordset1 = "1";
if (isset($_SESSION['MM_Username'])) {
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $_SESSION['MM_Username'] : addslashes($_SESSION['MM_Username']);
}
mysql_select_db($database_ff, $ff);
$query_Recordset1 = sprintf(
"SELECT `data`.username, `data`.longaccount, paper_detail.sn, paper_detail.writer, paper_detail.`year`, paper_detail.title
FROM paper_detail, `data`
WHERE longaccount = '%s' AND paper_detail.writer=`data`.longaccount", $colname_Recordset1);
可是就是不知為什麼進去更新著作頁面時,沒有任何資料,也有有錯誤訊息。

arc
2005-05-13, 08:28 PM
沒有錯誤訊息

不好意思。

arc
2005-05-14, 09:13 AM
那請問一下我這樣寫:
$colname_Recordset1 = "1";
if (isset($_SESSION['MM_Username'])) {
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $_SESSION['MM_Username'] : addslashes($_SESSION['MM_Username']);
}
mysql_select_db($database_ff, $ff);
$query_Recordset1 = sprintf(
"SELECT `data`.username, `data`.longaccount, paper_detail.sn, paper_detail.writer, paper_detail.`year`, paper_detail.title
FROM paper_detail, `data`
WHERE longaccount = '%s' AND paper_detail.writer=`data`.username", $colname_Recordset1);
可是就是不知為什麼進去更新著作頁面時,沒有任何資料,也有有錯誤訊息。

data資料表,就是存放老師的個檔包含帳號、密碼欄位,paper_detail資料表,存放著作發表的資料如作者、年份等欄位。
longaccount為個老師帳號
writer為作者
$colname_Recordset1為取得SESSION和longaccount做比對

arc
2005-05-14, 10:27 AM
data資料表,就是存放老師的個檔包含帳號、密碼欄位,paper_detail資料表,存放著作發表的資料如作者、年份等欄位。
longaccount為個老師帳號
writer為作者
$colname_Recordset1為取得SESSION和longaccount做比對


真是感謝nopy大大的指導呀,我以寫出來了,只錯在一個小小的地方,真是不小心。