Комментарии.
Создадим в БД таблицу
comments.
id int(11) primary
AI unsigned
comment text
user_id int(11)
unsigned
posted_at datetime
post_id int(11)
unsigned
Создадим
связи.
user_id с таблицей
users колонкой id
Создадим
связи.
post_id с таблицей
posts колонкой id
Откроем index.php
и создадим форму для комментариев.
<?php
include('./classes/DB.php');
include('./classes/Login.php');
include('./classes/Post.php');
include('./classes/Comment.php');
$showTimeline
= False;
if(Login::isLoggedIn()) {
$userid =
Login::isLoggedIn();
$showTimeline = True; // если пользователь залогинен,
то показываем собщения
//echo
'Logged in';
echo
Login::isLoggedIn()."<br />";
} else {
echo 'Not
logged in';
}
// лайки
if
(isset($_GET['postid'])) {
Post::likePost($_GET['postid'], $userid);
}
// комментарии
if
(isset($_POST['comment'])) {
Comment::createComment($_POST['commentbody'], $_GET['postid'],
$userid);
}
//
отображаются посты всех, за кем следует
пользователь с id=4
$followingposts = DB::query('SELECT posts.id, posts.body,
posts.likes, users.`username` FROM users, posts, followers
WHERE
posts.user_id = followers.user_id
AND users.id =
posts.user_id
AND
follower_id = 4
ORDER BY
posts.likes DESC;');
//print_r($followingposts);
foreach($followingposts as $post) {
echo
$post['body']." ~ ".$post['username'];
echo
"<form action='index.php?postid=".$post['id']."'
method='post'>";
if
(!DB::query('SELECT post_id FROM post_likes WHERE post_id=:postid AND
user_id=:userid', array(':postid'=>$post['id'],
':userid'=>$userid))) {
echo "<input type='submit' name='like' value='Like'/>";
} else
{
echo "<input type='submit' name='unlike' value='Unlike'/>";
}
echo
"<span>".$post['likes']." likes</span>
</form>
<form
action='index.php?postid=".$post['id']."' method='post'>
<textarea name='commentbody' rows='3' cols='50'></textarea>
<input type='submit' name='comment' value='Comment'/>
</form>
<hr
/><br />";
}
?>
Создадим новый класс
Comment.php
<?php
class Comment {
public static
function createComment($commentBody, $postId, $userId) {
//
валидация формы
if
(strlen($commentBody) > 160 || strlen($commentBody) < 1) {
die('Incorrect length!');
}
if
(!DB::query('SELECT id FROM posts WHERE id=:postid',
array(':postid'=>$postId))) {
echo
'Invalid post ID';
} else {
//
если id поста есть, то вставляем комментрий
в БД
DB::query('INSERT INTO comments VALUES (:id, :comment, :userid,
NOW(), :postid)',
array(':id'=>null,':comment'=>$commentBody, ':userid'=>$userId,
':postid'=>$postId));
}
}
}
?>
Комментариев нет:
Отправить комментарий