我在找到具有以下表结构的给定用户的注释时遇到问题:
usertable (id, userid, name)
comments (id, commentname, date)
注意:usertable.id
与comments.id
不同,它们都是autoincrement
我应该如何更新这些表来解决这个问题?
更新
当有人投票给thilo野人告诉我时,这段代码是否适合所有用户获得自己的投票?
$sth = thumbsup::db()->prepare(
'INSERT INTO'
.thumbsup::config('database_table_prefix')
.'votes_users(vid, userid) VALUES (?,?)');
$sth->execute(array($this->vid, $userid));
答案 0 :(得分:1)
你有两个选择:
在评论表中添加一个'uid'列,该列引用了usertable的'id'列。这样,您就可以跟踪哪些评论属于哪些用户。
创建一个包含'uid'和'cid'列的'user_comment'表。此选项保留原有的两个表,“user_comment”表负责跟踪哪些注释属于哪些用户。
答案 1 :(得分:0)
编辑:重写为使用多对多关系,因为当前表格无法更改。
使用以下字段创建一个名为comments_users的新表: cuid(主键和自动增量)| cid |流体
然后使用以下代码获取用户的所有评论:
$user_id = '1234';
// get all the user's comment ids from comments_users table
$find = mysql_query("SELECT `cid` FROM `comments_users` WHERE `uid` = '".$user_id."'");
// generate a query that grabs all those comments
$load = "SELECT * FROM `comments` WHERE ";
while ($row = mysql_fetch_array($find) {
$load .= "`id` = '".$row['cid']."' OR ";
}
// shop off the last OR
$load = substr($load,0,-4);
// put all the user's comments into comments array
$q = mysql_query($load);
while ($comment = mysql_fetch_array($q)) {
$comments[] = $comment
}
print_r($comments);
就插入方式而言,你会像往常一样在注释表中插入注释,但是你也可以在comments_users表中插入一行,填入相应的cid和uid以获得该注释