我目前有一個表,它由用戶信息和課程ID組成;該表的佈局看起來像:php和mysql用戶跟蹤和報告
----------------------------------------------------
|employeeID|numVisits|lessonID1|lessonID2|lessonID3|
----------------------------------------------------
|33388 |2 |1 |0 |3 |
,其中含有約教訓的信息的教訓表:
------------------------------------------------------
|lessonID |cateogry |title |filepath |numberviews|
------------------------------------------------------
|1 |beginner |lesson |file:// |10 |
內的用戶表中的lessonID領域是追蹤某人多少次有一個整數點擊了一課。現在我想要做的是在報告中,我有前5位訪問過該網站的人,並希望能夠深入瞭解他們點擊了哪些課程。 任何人都可以幫忙嗎?或者重構數據庫的方式是一件容易的事情?
感謝
我一直在尋找它到目前爲止的方式是:
1 - 讓所有的lessonID列特定僱員
2 - 檢查哪些有一個值大於0
3 - 使用步驟2中的列表,然後查詢用戶表上相應標題的lessonID。
第1步:
$sql = mysql_query("SELECT * FROM users
WHERE employeeID = 15110") or die(mysql_error());
$columns = mysql_num_fields($sql);
for($i = 0; $i < $columns; $i++) {
if(substr(mysql_field_name($sql, $i),0, 8) == "lessonID"){
$lessons[] = mysql_field_name($sql,$i).", ";
}
};
$lessonID = array_unique($lessons);
$l = substr("SELECT ".implode($lessonID)."", 0, -2)." FROM users WHERE employeeID = 15110";
這是我現在在哪裏很茫然,上述$ L構造查詢,選擇與特定僱員在用戶表中的所有lessonID列。 但是,我很遺憾下一步去哪裏查詢結果。
當你有一個名爲Foo1和Foo2,Foo3列是可能有時間重新考慮你的設計。規範化! – 2010-04-27 14:53:02
哪一部分你有特別的麻煩? SQL? PHP代碼?向我們展示你到目前爲止所嘗試過的。 – webbiedave 2010-04-27 14:55:36
我在原始問題中添加了代碼更新。 – inertiahz 2010-04-27 15:21:11