<MyRusakov.ru />

Создание Интернет-магазина на OpenCart 2.0

Создание Интернет-магазина на OpenCart 2.0

Видеокурс "Создание Интернет-магазина на OpenCart 2.0" обучит Вас созданию любых Интернет-магазинов на OpenCart 2. В первом разделе курса разбираются абсолютно все возможности данного движка с примерами.

Во втором разделе создаётся полноценный Интернет-магазин, где Вы уже всё увидите своими глазами.

И, наконец, в третьем разделе курса созданный Интернет-магазин будет размещён в Интернете.

К курсу так же идут бесплатные и очень ценные Бонусы сопоставимые с самим курсом: "Как сэкономить на Яндекс.Директ до 50%", "Дропшиппинг" и "Как раскрутить Интернет-магазин".

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Не работают комментарии
03.10.2016 01:57:37 Не работают комментарии Сообщение #1
KostaWhite

KostaWhite

Новичок

Новичок

Дата регистрации:
03.10.2016 01:37:29

Сообщений: 2


Здравствуйте! Нужна помощь ибо я уже бессилен. 
Из урока  Как сделать комментарии 
Я подчерпнул полезную информацию т.к. пересмотрел кучу всего и меня это не устроило. Спасибо автору.
Почему то не с первого раза у меня все заработало хотя делал все тоже самое, ну да ладно.

Проблема заключается в том, что при нажатии отправить происходит по сути обновление страницы без внесения данных в базу.
В чем может быть причина? 
Использую Open Server.
Вот строчки кода:

Добавление и вывод комментариев на одной странице
<?php
  $page_id = 150;// Уникальный идентификатор страницы (статьи или поста)
  $mysqli = new mysqli("localhost", "user", "pswd", "db";// Подключается к базе данных
  $result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id'"; //Вытаскиваем все комментарии для данной страницы
  while ($row = $result_set->fetch_assoc()) {
    print_r($row); //Вывод комментариев
    echo "<br />";
  }
  
?>
<form name="comment" action="comment.php" method="post">
  <p>
    <label>Имя:</label>
    <input type="text" name="name" />
  </p>
  <p>
    <label>Комментарий:</label>
    <br />
    <textarea name="text_comment" cols="30" rows="50"></textarea>
  </p>
  <p>
    <input type="hidden" name="page_id" value="$myrow['id']" />
    <input type="submit" value="Отправить" />
  </p>
</form>
Обработчик в файле comment.php
<?php
  /* Принимаем данные из формы */
  $name = $_POST["name"];
  $page_id = $_POST["page_id"];
  $text_comment = $_POST["text_comment"];
  $name = htmlspecialchars($name);// Преобразуем спецсимволы в HTML-сущности
  $text_comment = htmlspecialchars($text_comment);// Преобразуем спецсимволы в HTML-сущности
  $mysqli = new mysqli("localhost", "user", "pswd", "db";// Подключается к базе данных
  $mysqli->query("INSERT INTO `comments` (`name`, `page_id`, `text_comment`) VALUES ('$name', '$page_id', '$text_comment'";// Добавляем комментарий в таблицу
  header("Location: ".$_SERVER["HTTP_REFERER"]);// Делаем реридект обратно
?>
Профиль Ответить
04.10.2016 00:26:00 Не работают комментарии Сообщение #2
Mr_Miller

Mr_Miller

Новичок

Новичок

Дата регистрации:
03.10.2016 23:02:49

Сообщений: 1

Здравствуй решить ваши  проблемы очень просто 
нужно изменить совсем немного кода в строке
<input type="hidden" name="page_id" value="$myrow['id']" /> $myrow['id'] это php переменная . И она передается  в mysqli  получается некорректный
sql    запрос   

вместо этого можна написать 
<input type="hidden" name="Уникальный идентификатор страницы (статьи или поста) " /> или так 
<?
$page_id = 1;// Уникальный идентификатор страницы (статьи или поста) 
?>

<input type="hidden" name="page_id" value="<?$page_id?>" /> 






Этот код требует доработки, Теперь он будет добавлять записи в базу данных ,
но он не будет коректно выводить комментарии 

  $result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id'"; //Вытаскиваем все комментарии для данной страницы 
  while ($row = $result_set->fetch_assoc()) { 
    print_r($row); //Вывод комментариев 
    echo "<br />"; 
  } 
эту часть кода  нужно переработать 
Профиль Ответить
04.10.2016 19:33:16 Не работают комментарии Сообщение #3
KostaWhite

KostaWhite

Новичок

Новичок

Дата регистрации:
03.10.2016 01:37:29

Сообщений: 2

Спасибо добрый человек! 
Про уникальный идентификатор я уже понял. Вчера разбирался и даже стало выводить на экран. Однако вывод не корректный какой то. 
Возникла проблема с уникальным идентификатором. 
Схема такая, На странице index.php есть такой код, который подставляет id статьи из базы. На странице index отображается не полная новость, при нажатии на заголовок статьи происходит переход на полную новость с подставленным id статьи. Вот так это выглядит: страница index.php
$result = mysql_query("SELECT * FROM `apartments` ORDER BY id DESC LIMIT $start, $num";

$myrow = mysql_fetch_array($result);

do
{  
                    printf ("<table align='justify' class='post' width='630'>
       <tr>
   <td>
<h2><a href='view.php?id=%s'>%s</a></h2>
<div class='picture'><a href='view_news.php?id=%s'>%s</a></div>
   <div class='intro' height='180'>
   <b>Район: %s</b>
   <br><b>Улица: %s, дом: %s</b>
   <br><b>Комнат: %s</b>
   <br><b>Спальных мест: %s</b>
   <div class='price'><br><b>%s за сутки</b></div>
<div class='booking'><br><a href='#'><b>Забронировать</b></a></div>
</div>
</td>
</tr>
</table>", $myrow['id'], $myrow['title'], $myrow['id'], $myrow['image'], $myrow['area'], $myrow['street'], $myrow['home'], $myrow['room'], $myrow['sleeps'], $myrow['price']);

}
while($myrow = mysql_fetch_array($result));

После перехода на полную статью у нас получается : view.php?id=2 или  id=1 или id-3 в зависимости от номера статьи. 
т.е. мы оказываемся на странице view.php где подставляется id статьи.
<h2><a href='view.php?id=%s'>%s</a></h2>

В файле view.php вверху:
<?php include "blocks/bd.php";
    if (isset($_GET['id'])) {$id = $_GET['id'];} 

$result = mysql_query("SELECT * FROM `apartments` WHERE id='$id'";
$myrow = mysql_fetch_array($result);
?>

Ниже идет сам скрипт я добавил JOIN чтобы приравнять комментарий к номеру статьи: 
<?php
  $page_id =2;// Уникальный идентификатор страницы (статьи или поста)
  $mysqli = new mysqli("localhost", "", "", "";// Подключается к базе данных
  $result_set = $mysqli->query("SELECT `name`, `text_comment` FROM `comments` JOIN `apartments` on apartments.id = comments.page_id
where apartments.id = {$id}" or die($db->error()); //Вытаскиваем все комментарии для данной страницы
  while ($row = $result_set->fetch_assoc()) {
    print_r($row); //Вывод комментариев
    echo "<br />";
  }
  
?>
<form name="comment" action="/comment.php" method="post">
  <p>
    <label>Имя:</label>
    <input type="text" name="name" />
  </p>
  <p>
    <label>Комментарий:</label>
    <br />
    <textarea name="text_comment" cols="30" rows="50"></textarea>
  </p>
  <p>
    <input type="hidden" name="page_id" value="2" />
    <input type="submit" value="Отправить" />
  </p>
</form>
в value у меня стоит цифра 2. В базу заносятся комменты ко 2 статье. Как можно этот идентификатор вставить в value чтобы автоматом подставлял id из базы?
Профиль Ответить