0
CREATE TABLE post_likes (
post_id INT NOT NULL,
user_id INT NOT NULL,
likes BOOLEAN NOT NULL,
FOREIGN KEY (post_id) REFERENCES posts(id),
FOREIGN KEY (user_id) REFERENCES users(id),
PRIMARY KEY (user_id, post_id)
)
+-------+---------+---------+
| likes | post_id | user_id |
+-------+---------+---------+
| 1 | 1 | 1 |
| 1 | 1 | 2 |
| 0 | 2 | 1 |
| 0 | 2 | 2 |
+-------+---------+---------+
私はNodeJSとEJSをテンプレート言語として使用しています。今私はEJSにpost_likesテーブルを渡しています。そしてforループをやろうとしています。基本的に表1 =真または似て0 =偽または嫌い。だから私はカウンターを持っていて、それが好きなら私はカウンターをやる++ else counter - 。しかし、それは悪く見えます。また、何らかの理由で動作していないこれを行うためのより良い方法は何ですか。好き嫌いを表示するにはどうすればいいですか?MySQL、NodeJS
私が試したこと - 不要なコードの他の部分は除外しました。私はejsの閉じ括弧を削除し、読みやすくするために開いています。
<% var counter = 0 %>
for(var i = posts.length-1; i >= 0; i--) {
if(posts[i].post_likes.length > 0) {
for(var j = 0; j < posts[i].post_likes.length; j++) {
if(posts[i].post_likes[j].likes == true) {
counter = counter + 1 %>
}
else if(posts[i].post_likes[j].likes == false) {
counter = counter - 1
}
}
}
}
<h1><%= counter %></h1>