我在图片详情页面上有一个按钮,允许用户将所述图片添加到当前有效的“收藏夹”中,我只选择当前$qry = mysqli_query("select * from tbl_users where usr='$unm' and pwd='$pwd'");
$rec_count = mysqli_num_rows($qry);
if($rec_count == 1){
while($row = mysqli_fetch_array($qry)){
echo "Welcome " . ucfirst($row['fname']) . "!";
}
}
作为图片querystring ID
,以及{{ 1}}作为用户id
并将其插入名为session["bruger_id"]
我是怎么做到的:
Id
所以我的问题是:
如果用户已将图像添加到收藏夹,他当前可以反复执行,并且不止一次添加相同的图像作为收藏夹,这是不好的。
所以如果"favoritter"
已经收藏protected void Button_favorit_Click(object sender, EventArgs e)
{
if (Session["bruger_id"] != null)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString =
ConfigurationManager.ConnectionStrings["DatabaseConnectionString1"].ToString();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
int nID = int.Parse(Request.QueryString["ID"].ToString());
cmd.CommandText =
"INSERT INTO Favoritter"
+ "(FK_bruger_id, FK_billede_id) VALUES (@fk_bruger_id, @FK_billede_id)";
cmd.Parameters.Add("@FK_billede_id", SqlDbType.Int).Value = nID;
cmd.Parameters.Add("@FK_bruger_id", SqlDbType.Int).Value = Session["bruger_id"];
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Label_favorit.Text = "Billedet blev tilføjet til Favoritter.";
}
else
{
Label_favorit.Text = "Logind for at tilføje som favorit";
}
}
但我不知道如何检查fk_user_id
和FK_image_id
的组合是否已经存在。如果是,则应fk_user_id
而不是fk_image_id
。
答案 0 :(得分:1)
cmd.CommandText = "SELECT Id FROM Favoritter WHERE (FK_user_id = @fk_user_id and FK_image_id = @fk_image_id)";
...
var reader = cmd.ExecuteReader();
然后检查返回的数据。
答案 1 :(得分:0)
对userid和imageid的组合执行选择查询。如果返回任何内容,则删除它(使用返回的记录id-如果组合不存在则为null)并输入新记录。
我认为逻辑删除记录也可能有所帮助,但这需要更改结构......
答案 2 :(得分:0)
您可以在一个查询中完成此任务。命令文本如下所示:
--cached