За последние 24 часа нас посетили 22985 программистов и 1241 робот. Сейчас ищут 734 программиста ...

Комментирование записей подобно "ВКонтакте"

Тема в разделе "PHP для новичков", создана пользователем DarkGod▲, 21 июн 2017.

  1. DarkGod▲

    DarkGod▲ Новичок

    С нами с:
    21 июн 2017
    Сообщения:
    12
    Симпатии:
    2
    Добрый вечер, заранее извиняюсь за свой ужасный код, учусь только 13 дней.
    Решил испытать свои силы и создать подобие вывода новостей c возможностью комментирования, как в большинстве социальных сетей, но столкнулся с проблемой: в мою пустую голову не приходит мысль как сделать так, чтобы при нажатии на ссылку или кнопку копировалось id этой статьи в глобальный массив $_SESSION, чтобы в дальнейшем на другой странице пользователи могли обмениваться комментариями. Подскажите, как добавить id нужной статьи в $_SESSION, если все строки из БД выводятся через цикл. Спасибо

    В коде используется RedBean

    Вот код вывода новостей :

    PHP:
    1. <?php
    2. require '../db.php';
    3. require_once '../cbd.php';
    4.  
    5. if (isset($_SESSION['logged_user'])) {
    6.  
    7. $connection = mysqli_connect($host, $user, $password, $database);// or die("Ошибка " . mysqli_error($connection));
    8.  
    9. $result = mysqli_query($connection,"SELECT * FROM `stories` ORDER BY id DESC LIMIT 100");
    10. $i = 0;
    11.  while(($record=mysqli_fetch_assoc($result))){
    12.     echo  '<div class="stories">'. '<a href="" style="font-size:50%; opacity="0.8">Комментировать</a>' . '<div style="text-align:center;">' .  '
    13.    <h6 style="opacity: 0.2;"> id: ' . $record['id'] .'</h6>'.'<h4>'. $record['name'] .'</h4>' . $record['text'] . '</div>' . '</div>' ;
    14.     echo('<br>');
    15.  }
    16. }else {
    17.     echo '<div id="error01"> <a  id="nonreg" href="../index.php"> Войдите</a > или <a id="nonreg" href="../register.php">зарегистрируйтесь</a></div>' ;
    18. }
    19.  ?>
    Вот скрин страницы :
    [​IMG]
     
    Алекс8 и MouseZver нравится это.
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Сложноватая задача для 13 дней. Не надо никакой сессии здесь, get-параметров больше чем достаточно
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    за 13 дней выучить пых, чтобы содержать в более менее читабельный код и использовать современные функции / проверять переменные перед использованием как подабается. Парень... лайк огромный. Это редкость
     
    DarkGod▲ нравится это.
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    добавить атрибут data-id = "" где будет вставляться ID статьи + идентифицируем хотябы id = "comments"
    Lальше ajax
    Код (Javascript):
    1. $( function()
    2. {
    3.     $( 'body' ).on( 'click', 'a#comments', function( e )
    4.     {
    5.         e.preventDefault(); # перехват действия клика
    6.        var id = $( this ).attr( 'data-id' ); # слизываем с атрибута data-id айди статьи и помещаем в id переменную
    7.        
    8.  
    9.         $.get(
    10.         {
    11.             ... погуглить!
    12.         });
    13.     });
    14. });
    ой... парюсь
    PHP:
    1. echo  '<div class="stories">'. '<a href="#' . $record['id'] .'" style="font-size:50%; opacity="0.8">Комментировать</a>
     
    DarkGod▲ нравится это.
  5. DarkGod▲

    DarkGod▲ Новичок

    С нами с:
    21 июн 2017
    Сообщения:
    12
    Симпатии:
    2
    Спасибо огромное, попробую.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    чочо а каменты делать это как раз стартовая задача, которая ранее называлась "доска объявлений"

    аяксом или нет - второй вопрос

    главное что есть некая сущность, к уникальному идентификатору которой прилипают каменты. Выводить каменты надо либо просто по времени, либо деревом, либо ещё как, но выборка каментов происходит именно через этот идентификатор. Обычно это просто некий номер какой-то статьи или объявления.
     
  7. DarkGod▲

    DarkGod▲ Новичок

    С нами с:
    21 июн 2017
    Сообщения:
    12
    Симпатии:
    2
    тут вопрос был в другом: я не понимал как взять id нужной статьи , если они выводятся через массив.
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    в таком случае нужно в элемент добавить data-id=номер и обращаться к нему лучше не
    а
    $(this).data('id)
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    не знал. Вопрос в другом , почему лучше ? смысл вроде одинаков
     
    DarkGod▲ нравится это.
  10. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    ага 13 дней, по такому графику он через 8 месяцев создаст социалку превосходящую facebook по все параметрам