我在大学里制作了一个小型网络应用程序,并且在数据访问方面遇到了一些问题。
有3个用户帐户可以登录,之后所有人都可以创建自己的讲座。
问题: 每位教师都应该只看到他创作的讲座而不是其他两位创建的讲座。目前,每位老师都会看到每一堂课。
我不知道我应该在这里发布哪些代码,但我非常感谢任何帮助!
非常感谢!
编辑:谢谢你的回答。我在最近几个小时尝试过,但我不知道该怎么做了。
这是我将代码保存到数据库中的代码。 $ _SESSION似乎存在问题。
private void btnSave_Click(object sender, EventArgs e)
{
AddNames(txtFirstname.Text, txtLastName.Text);
txtFirstName.Clear();
txtLastName.Clear();
}
public void AddNames(string strFirstName, string strLastName)
{
String connString = @"Data Source=ERNIE\SQLEXPRESS;Initial Catalog=LeatherDress;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
using(SqlConnection oCON = new SqlConnection(connString))
{
SqlCommand oCMD = new SqlCommand("usp_BasqueNames_Insert",oCon);
oCMD.CommandType = CommandType.StoredProcedure;
oCMD.Parameters.Add("@First", SqlDbType.Nchar).Value = strFirstName;
oCMD.Parameters.Add("@Last", SqlDbType.Nchar).Value = strLastName;
oCON.open();
oCMD.ExecuteNonQuery();
oCON.close();
}
}
这是我的登录代码:
public function save(Vorlesung $vorlesung)
{
try {
$stmt = $this->pdo->prepare('
INSERT INTO vorlesung
(name, login_dozent)
VALUES
(:name, '$_SESSION[dozent]')
');
$stmt->bindParam(':name', $vorlesung->name);
$stmt->execute();
} catch (PDOException $e) {
echo("Fehler! Bitten wenden Sie sich an den Administrator...<br>" . $e->getMessage() . "<br>");
die();
}
return $vorlesung;
}
答案 0 :(得分:2)
如果没有代码示例,它就不是很精确...... 所以,让我们通用: 存储到数据库中: - 教师(他们每个人都可能有一个独特的登录名或身份证) - 讲座:每个讲座都应包含一个数据来识别您的老师:其唯一的登录名或身份证。
然后,您将能够使用当前连接的教师过滤您的讲座,例如,您应将其存储为会话值。
登录脚本:
$ _ SESSION [&#39;老师&#39;] = $ the_teacher_id
创建讲座时,将教师ID存储到数据库中,并附上讲座的其他数据: INSERT INTO讲座(老师,other_lecture_data)价值观(&#39; $ _ SESSION [老师]&#39;,$ other_lecture_data_value);
当您列出所有可用的讲座时,请使用当前连接的教师唯一登录名或ID进行过滤:
SELECT * FROM讲座WHERE老师=&#39; $ _ SESSION [老师]&#39;;
答案 1 :(得分:1)
您的讲座表应如下所示:
select * from lecture where teacher_id = 1; // or another teacher id
您的查询应如下所示:
protected override void Initialize(HttpControllerContext controllerContext)
{
var newControllerContext = controllerContext
//edit RouteData to refer to your controller/action
newControllerContext.RouteData.Values["action"] = "YourAction"
base.Initialize(newControllerContext);
}