Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Mr CaT
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 22
1

Добавление комментария на отдельной странице со статьей

16.10.2016, 11:47. Просмотров 1092. Ответов 52
Метки нет (Все метки)

Всем привет! Я тут новичок но у меня возникла одна проблема. Хочу создать "Добавление комментария на отдельной странице со статьей", но не получается. Как сделать так чтобы например можно было добавлять коммент по айдишник статьи, я сделал но не получается.
ПОДСКАЖИТЕ ПОЖАЛУЙСТА, заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2016, 11:47
Ответы с готовыми решениями:

Сделать, чтобы то, что выводит php в отдельной странице, выводил в диалоговом окне на главной странице
Есть форма <form method=post action=/preorder.php> <div class="row half">...

Добавление комментария к файлу
Есть простейший файлообменник, заливаем файл, добавляем комментарий к файлу....

Авторизация на отдельной странице
Доброе время суток ребят, может кто подсказать что не так, есть полностью...

Полная статья на отдельной странице
Доброго всем времени. Совсем ни так давно начал изучать php уже не поверхностно...

Как вывести модуль на отдельной странице?
Подскажите, пожалуйста, как сделать, чтобы модуль для CMS Joomla показывался на...

52
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27954 / 15675 / 959
Регистрация: 15.09.2009
Сообщений: 67,837
Записей в блоге: 78
16.10.2016, 11:49 2
выкладывай что сделал. форумчане поправят.
0
Para bellum
Эксперт PHP
4106 / 3053 / 986
Регистрация: 06.01.2011
Сообщений: 8,932
16.10.2016, 11:59 3
Цитата Сообщение от Mr CaT Посмотреть сообщение
сделать так чтобы например можно было добавлять коммент по айдишник статьи
Обычная связка "один ко многим". В таблице "comments" добавляете поле "article_id" и пишете туда ID статьи из таблицы "articles". И "foreign key" с "on delete cascade" установите на поле "article_id", чтобы при удалении статьи не нужно было вручную удалять комментарии, относящиеся к ней.
0
Mr CaT
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 22
16.10.2016, 15:40  [ТС] 4
Но как сделать так чтобы по `article_id` добавлялись комменты именно к этой статьи?
Я вставил
HTML5
1
<input type="hidden" name="article_id">
и
PHP
1
2
3
4
5
if(isset($_POST["add"])) {
    $article_id = $_POST["article_id"];
    $comment = $_POST["comment"];
    $name  = $_POST["name"];
}
Что дальше делать подскажите, я PHP нормально понимаю, но с этим у меня проблема
0
ns16
93 / 93 / 68
Регистрация: 26.03.2015
Сообщений: 248
16.10.2016, 17:15 5
Цитата Сообщение от Mr CaT Посмотреть сообщение
Что дальше делать подскажите
Устанавливаете соединение с базой данных, экранируете спецсимволы в comment и name, проверяете, что статья с идентификатором article_id существует, добавляете новую запись в таблицу с комментариями, закрываете соединение с базой данных, делаете редирект на статью с article_id.
Если будут вопросы, пишите
0
Mr CaT
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 22
16.10.2016, 19:47  [ТС] 6
Все сделал но комментарий добавляется во всех статья, а мне надо чтобы на отдельных статьях были отдельные комментарии
0
fanatikus
1085 / 1079 / 506
Регистрация: 17.11.2012
Сообщений: 4,777
16.10.2016, 22:13 7
Цитата Сообщение от Mr CaT Посмотреть сообщение
<input type="hidden" name="article_id">
а value где?
HTML5
1
<input type="hidden" name="article_id" value="<?php echo $article_id;?>">
Добавлено через 1 минуту
Цитата Сообщение от Mr CaT Посмотреть сообщение
Все сделал
и вы думаете, что нам видно что вы там сделали?
0
miketomlin
Заблокирован
16.10.2016, 22:43 8
Цитата Сообщение от Mr CaT Посмотреть сообщение
Все сделал но комментарий добавляется во всех статья, а мне надо чтобы на отдельных статьях были отдельные комментарии
Вы должны выводить на странице (страницах) статьи только относящиеся к ней комментарии. Например после такой выборки:
SQL
1
2
3
4
5
6
SELECT `site_comments`.*,`site_author`.`id` `author_id`,`site_author`.`name` `author_name`
FROM `site_comments`
LEFT JOIN `site_author` USING (`author`)
WHERE `article_id`={$page['article_id']} AND `published`
ORDER BY `time`
LIMIT {($pn-1)*$pp},{$pp}
author_id – это слаг автора для аватара и т.п. Если не нужен, можете убрать. Числовой id автора находится в поле author, если не понятно.
0
Mr CaT
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 22
17.10.2016, 11:53  [ТС] 9
А переменная $pp откуда появилась?
И стоит написать
HTML5
1
<input type="hidden" name="article_id" value="<?php echo $article_id;?>">
0
miketomlin
Заблокирован
17.10.2016, 13:00 10
$pn и $pp – это т.с. условные обозначения. Последняя строка нужна только для многостраничных или подгружаемых порциями комментариев. $pn – номер страницы/порции, $pp – макс. кол-во комментариев на странице/в порции.

Добавлено через 8 минут
Цитата Сообщение от Mr CaT Посмотреть сообщение
И стоит написать
Стоит, если требуется. Если POST-обработчик встраивается в каждую статейную страницу, то скрытое поле без надобности. Числовой id статьи и прочее определяются точно также, как при GET-запросе. Кстати, это же дает автоматический контроль идентификатора – не нужно отдельно проверять его корректность.
0
Mr CaT
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 22
17.10.2016, 15:26  [ТС] 11
Notice: Undefined variable: id in A:\home\dvizhok.ru\oop\comment.php on line 35
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: page in A:\home\dvizhok.ru\oop\comment.php on line 27

Notice: Undefined variable: pn in A:\home\dvizhok.ru\oop\comment.php on line 27

Notice: Undefined variable: pp in A:\home\dvizhok.ru\oop\comment.php on line 27

Notice: Undefined variable: pp in A:\home\dvizhok.ru\oop\comment.php on line 27

Вот ошибка, а вот код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
    ini_set("display_errors", 1);
    error_reporting(E_ALL);
 
    /* The Comment Class */
    class Comment {
        
        private $mysqli;
        
        private static $mycomment = null; //It's means that I can add more and more comments
        
        /* Connecting... */
        
        public function __construct() {
            $this->mysqli = new Mysqli('localhost', 'root', '', 'cms');
            $this->mysqli->query("SET NAMES 'utf8'");
        }
        
        public static function getComment() {
            if(self::$mycomment === null) self::$mycomment = new Comment();
            return self::$mycomment;
        }
        
                    /*Comment Functions*/
        public function viewComment($name, $comment)
        {
            $this->mysqli->query("SELECT `text_comment``.*.`id`,`name` FROM `articles` LEFT JOIN `text_comment`` USING (`name`) WHERE `article_id`={$page['article_id']} AND `published` ORDER BY `id` LIMIT {($pn-1)*$pp},{$pp}");
        }
        
        
        public function addComment($name, $comment) 
        {
            if($name =="") return false;
            if($comment =="") return false;
            $this->mysqli->query("UPDATE `articles` SET `name` = '$name', `text_comment` = '$comment' WHERE(`id` = '$id')");
            
        }
        /* Closing the connection */
        
        public function __destruct() {
            if($this->mysqli) $this->mysqli->close();
        }
    
    
    
    
    
    
    
    
    
    
    }
 
 
?>
0
fanatikus
1085 / 1079 / 506
Регистрация: 17.11.2012
Сообщений: 4,777
17.10.2016, 15:35 12
Цитата Сообщение от Mr CaT Посмотреть сообщение
public function viewComment($name, $comment) { $this->mysqli->query("SELECT `text_comment``.*.`id`,`name` FROM `articles` LEFT JOIN `text_comment`` USING (`name`) WHERE `article_id`={$page['article_id']} AND `published` ORDER BY `id` LIMIT {($pn-1)*$pp},{$pp}"); }
откуда эти переменные возьмутся в функции?
Цитата Сообщение от Mr CaT Посмотреть сообщение
public function addComment($name, $comment)
{
if($name =="") return false;
if($comment =="") return false;
$this->mysqli->query("UPDATE `articles` SET `name` = '$name', `text_comment` = '$comment' WHERE(`id` = '$id')");

}
$id тоже самое
0
Mr CaT
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 22
17.10.2016, 15:56  [ТС] 13
fanatikus, Я написал неверно вот верный скрипт:
PHP
1
2
3
4
5
public function addComment($name, $comment)
{
if($name =="") return false;
if($comment =="") return false;
$this->mysqli->query("INSERT INTO `articles` (`name`, `text_comment`) VALUES('$name', '$comment') ")
Но все равно ошибка
0
fanatikus
1085 / 1079 / 506
Регистрация: 17.11.2012
Сообщений: 4,777
17.10.2016, 16:20 14
Цитата Сообщение от Mr CaT Посмотреть сообщение
Но все равно ошибка
какая?
0
mrNTF
272 / 200 / 142
Регистрация: 22.01.2016
Сообщений: 637
17.10.2016, 17:11 15
Цитата Сообщение от fanatikus Посмотреть сообщение
какая?
в конце последней строки ; что ли не хватает
Цитата Сообщение от Mr CaT Посмотреть сообщение
'$comment') ")
0
Mr CaT
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 22
17.10.2016, 17:31  [ТС] 16
Цитата Сообщение от fanatikus Посмотреть сообщение
какая?
Вот такая
Notice: Undefined variable: page in A:\home\dvizhok.ru\oop\comment.php on line 27
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: pn in A:\home\dvizhok.ru\oop\comment.php on line 27

Notice: Undefined variable: pp in A:\home\dvizhok.ru\oop\comment.php on line 27

Notice: Undefined variable: pp in A:\home\dvizhok.ru\oop\comment.php on line 27

Добавлено через 30 секунд
Цитата Сообщение от mrNTF Посмотреть сообщение
в конце последней строки ; что ли не хватает
Поставил но все равно ошибка
0
fanatikus
1085 / 1079 / 506
Регистрация: 17.11.2012
Сообщений: 4,777
17.10.2016, 17:38 17
вы прикалываетесь?
те же ошибки(неопределенные переменные), на которые я обратил ваше внимание выше в посте.
0
Mr CaT
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 22
18.10.2016, 12:22  [ТС] 18
fanatikus, miketomlin мне написал скрипт.
А как тогда сделать "Добавление статьи на отдельной странице со статьей"? Объясните пожалуйста
0
miketomlin
Заблокирован
18.10.2016, 12:31 19
Я вам примерный запрос написал, а не скрипт.

Цитата Сообщение от Mr CaT Посмотреть сообщение
А как тогда сделать "Добавление статьи на отдельной странице со статьей"?
Статьи? Вы уверены, что не описались?
0
fanatikus
1085 / 1079 / 506
Регистрация: 17.11.2012
Сообщений: 4,777
18.10.2016, 12:35 20
Цитата Сообщение от Mr CaT Посмотреть сообщение
miketomlin мне написал скрипт.
если вы о посте выше, то это просто пример sql запроса. его не нужно тупо вставлять в свой код. нужно понять что он делает и подогнать под себя.
Цитата Сообщение от Mr CaT Посмотреть сообщение
А как тогда сделать "Добавление статьи на отдельной странице со статьей"?
покажите структуру таблиц где хранятся статьи и комментарии.
0
18.10.2016, 12:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2016, 12:35

Стоит ли загрузку файлов организовывать на отдельной странице?
Как лучше сделать: в форму добавить input type=&quot;text&quot;, или с помощью js вообще...

Нужно чтобы открывался товар на отдельной странице.
Такой вопрос есть страница скажем категории (так будет понятней для всех) и...

Исчезновение формы комментария после отправки комментария
Здравствуйте. Столкнулся со следующей проблемой: Я сделал форму комментария,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru