За последние 24 часа нас посетили 34343 программиста и 1694 робота. Сейчас ищут 693 программиста ...

Проблема с передачей id

Тема в разделе "PHP для новичков", создана пользователем Dron-Boy, 18 июл 2016.

  1. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Вопрос состоит в следующем на сайте есть коментарии выводятся они рекурсией под каждым коментарием есть ответ на него. Проблема состоит в следующем: При нажатии на кнопку ответ появляется модалка в которой и прописывается ответ на комент. После все передается на файл обработчик и заносится в бд. Но я не могу передать id того коментария на который происходит ответ (а это нужно обязательно). Пробовал в рекурсии id присваевать до переменной так тогда в переменную попадает либо первый id либо последний. Других мыслей как это сделать нет. Подскажите как это сделать? Вот здесь можете сами посмотреть как оно работает http://dronboy.esy.es/wiev_post.php?id=8
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    В тег A можешь добавить data атрибут с id комментария. При срабатывании функции которая ждёт нажатие на ссылку ответить можно обратиться к this переменной, которая будет ссылаться на ту ссылку на которую нажали и из data-id атрибута можно будет получить id комментария.
     
    Dron-Boy нравится это.
  3. SpikePHP

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

    С нами с:
    6 май 2015
    Сообщения:
    130
    Симпатии:
    23
    Так. Поскольку у тебя модальная форма. А она одна, то выходит только JavaScript тебе в помощь. denis01 дал дельный совет
     
    #3 SpikePHP, 18 июл 2016
    Последнее редактирование: 18 июл 2016
  4. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    А можно пример?
    --- Добавлено ---
    Можно и на php но только как?
     
  5. SpikePHP

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

    С нами с:
    6 май 2015
    Сообщения:
    130
    Симпатии:
    23
    @Dron-Boy, нет. Я ошибся. Чистым PHP я не знаю как сделать, поскольку модальная форма у тебя одна.
     
    Dron-Boy нравится это.
  6. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Сделал как ты сказал, работает все так же не правильно. Я сделал еще одно поле к нему в валуе присвоил id его сделал тип text ну что бы видеть где какой id и когда нажимаю отправить всеровно передается не тот id
    --- Добавлено ---
    Проблема в том что с js я так сказать плохо его знаю.
     
  7. SpikePHP

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

    С нами с:
    6 май 2015
    Сообщения:
    130
    Симпатии:
    23
    Поскольку после заполнения модальной формы ты всё равно обновляешь страницу, то можно и средствами PHP(добавлено : имеется в виду смысл модальной формы в том, что ты динамически обновишь содержимое страницы, и добавленный комментарий появится без обновления страницы). Под кнопкой ты можешь установить ссылку на скрипт с переменной comment_id(которая содержит id комментария, на который отвечают)

    Код (Text):
    1. <a href="otvet.php?comment_id=5"><img src="otvetit.png"></a>
    Ну а уже в принимающем скрипте otvet.php ты в переменной $_GET['comment_id'] будешь иметь id коммента, который ты хочешь коментить. После работы этого скрипта возвращаешься назад на страницу с комментариями.

    Эт конечно не изящно, на JavaScript было бы куда лучше
     
    #7 SpikePHP, 18 июл 2016
    Последнее редактирование: 18 июл 2016
    Dron-Boy и denis01 нравится это.
  8. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @SpikePHP да не он же говорит что у него первый id тока присваивается....

    Меня тут это толкает на мысль что он id вообще не правильно присваивает, то есть выборку из базы как то криво делает....

    @Dron-Boy показывай как ты выборку делаешь свою когда комментарии выводишь...
     
  9. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Все решил проблему тема закрыта всем спасибо)
     
  10. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Dron-Boy чё было расскажи может у других такая же трабла будет, да они зайдут почитают и тебе ещё спасибо потом скажут :)
     
  11. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Я решил следующим образом (да конечно все не "изящно" но все же): сделал <input type="radio" onclick="ADD_BUTTON(id)" name="add_art" id="btn" value="'.$arr[$parent_id][$i]['id'].'" /> когда я нажимаю на переключатель то id тот что мне нужно. Кликаю на input открывается модалка и отвечаем на комент при этом id все так же хранится в радио кнопке и уходит вместе с ответом)
    Я же говорил что не "Изящно"))))
     
  12. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Dron-Boy кинул бы ты код как ты строишь выборку из бд и как ты её в html выводишь, а тебе мб бы тут и готовый код напилинькали, за одно бы с аяксом научился работать, там только на вид страшно и зубы большие, а по головке погладишь он как самая добротная собачка становится словно ты её хозяин которого она не видела пару месяцев.
     
  13. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    PHP:
    1. <!--Вывод рекурсии коментариев-->
    2.    
    3.    
    4. <?
    5.      
    6.        error_reporting(E_ALL);
    7. function get_cat() {
    8.      if (isset ($_GET["id"])){
    9.            $id_z =$_GET["id"];
    10.          
    11.        }
    12.     //запрос к базе данных
    13.     $sql = "SELECT * FROM comments WHERE id_zam = $id_z";
    14.     $result = mysql_query($sql);
    15.     if(!$result) {
    16.         return NULL;
    17.     }
    18.     $arr_cat = array();
    19.     if(mysql_num_rows($result) != 0) {
    20.  
    21.         //В цикле формируем массив
    22.         for($i = 0; $i < mysql_num_rows($result);$i++) {
    23.             $row = mysql_fetch_array($result,MYSQL_ASSOC);
    24.            
    25.  
    26.             //Формируем массив, где ключами являются адишники на родительские категории
    27.             if(empty($arr_cat[$row['parent_id']])) {
    28.                 $arr_cat[$row['parent_id']] = array();
    29.             }
    30.             $arr_cat[$row['parent_id']][] = $row;
    31.         }
    32.         //возвращаем массив
    33.         return $arr_cat;
    34.     }
    35.    
    36. }
    37. function viev_cat($arr,$parent_id = 0){
    38.   if(empty($arr [$parent_id])){
    39.       return;
    40.      
    41.   }
    42.          if(isset ($_GET['id']))
    43.    
    44.        
    45.         {
    46.            
    47.             $id = $_GET['id'] ;
    48.        
    49.        
    50.         }
    51.     echo'<ul class="coment"><li>';
    52.      for($i = 0; $i< count ($arr[$parent_id]); $i ++){
    53.          echo'<div><b>'.$arr[$parent_id][$i]['name'].'</b> <br>
    54.         <p>'.$arr[$parent_id][$i]['comment'].'</p><span> Дата: '.$arr[$parent_id][$i]['date_add'].'
    55.        <input type="radio" onclick="ADD_BUTTON(id)"  name="add_art" id="btn" value="'.$arr[$parent_id][$i]['id'].'" />
    56.         <form method="post" action="otvet_coment.php?id_zam='.$id.'">
    57.    
    58.      
    59.      
    60.         ';
    61.          echo'</span></div>';
    62.        
    63.          viev_cat($arr, $arr[$parent_id][$i]['id']);
    64.      
    65.      }
    66.      echo'</li></ul>';
    67.    
    68.    
    69. }    
    70.     $res = get_cat();
    71.        viev_cat($res);
    72.  
    73.        
    74.         ?>
     
  14. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Dron-Boy

    Вот сейчас короче закомментируй свой код и вставь вот этот вот. А потом скинь сюда что у тебя показало на экране плиз. \

    PHP:
    1. <?php
    2.     function getDataParams($host, $dbname, $user, $password, $charset)
    3.     {
    4.         // Эта функция служит для возврата массива параметров в бд учись разделять код. Грамотно.
    5.         // А ещё лучше в будущем освой ООП и перепиши данное на ккласами и объектами, а пока и так норм.
    6.         return array(
    7.             'host' => $host,
    8.             'dbname' => $dbname,
    9.             'user' => $user,
    10.             'password' => $password,
    11.             'charset' => $charset
    12.         );
    13.     }
    14. ?>
    15. <?php
    16.     function connect($params) {
    17.     // это функция возвращает твоё подключение к базе данных методом PDO::STATEMENT
    18.     // Не используй mysql_ функции они уже устарели, и рано или поздно уйдут скоро из поддержки php
    19.  
    20.     $dsn = "mysql:host={$params['host']};charset={$params['charset']};dbname={$params['dbname']}";
    21.     $db = new \PDO($dsn, $params['user'], $params['password']);
    22.     return $db;
    23.     }
    24.  
    25. ?>
    26. <?php
    27.  
    28.         // Не увидел твоих параметров поэтому напишу произвольные
    29.         // Надеюсь поймёшь что куда заполнять
    30.    
    31.         //теперь мы имеем подключение к базе данных которое хранится в $db и можем спокойно строчить запросы
    32.         // Так дальше что то тут твоё не понятно ты получаешь так понимаю id из гет запроса какой то
    33.         if (isset ($_GET["id"])){
    34.             // если уж ты делаешь выборку по полученному гету то саму выборку тоже прячь в условие если нету такого гет запроса зачем тебе делать бестолковое подключение к бд :)
    35.             //  А ещё оно может быть с ошибочкой если у тебя будет пустая переменная  $id_z  будет....
    36.             $id_z =$_GET["id"];
    37.        
    38.             $params = getDataParams('localhost', 'db_name', 'user', 'password', 'utf8');
    39.             // Ниже вызовим нашу функцию подключения к бд по средставом PDO
    40.             $db = connect($params);
    41.    
    42.             $result = $db->prepare('SELECT * FROM comments WHERE id_zam=:id'); // Это подготавлемый запрос служит для того чтобы в базу
    43.             // не проникли всякие языческие знаки, но это магия пока сильна поэтому прими как должное что оно просто так должно быть
    44.             $result->bindParam(':id', $id_z); // присваивание параметров происходит таким образом думаю аналогию проведёшь.
    45.             $result->execute(); // Ну вот наш запрос готов и pdo метод execute отправляет наш запрос к бд.
    46.             $result = $result->fetchAll(); // теперь данным методом получаем наш массив из бд :) всё генеально и просто :)
    47.             echo '<pre>';
    48.             print_r($result);
    49.             echo '</pre>';
    50.        
    51.         }
    52.    
    53. ?>
    --- Добавлено ---
    но можешь пока почитать я старался всё прокомментировать.. Но кинь массив, я дальше уже отталкиваясь от него допишу твою задачу
    --- Добавлено ---
    @Dron-Boy чувак Ау :) я дописать хочу твою задачу Але :) За одно рассказать тебе как грамотно код написать :)

    Ладно если я вдруг усну, добйте кто нибудь :) Помогите ему познать магию php :D Но что то чувство у меня что он не правильно id вернул, потому что там внизу такая каша... Онполучает id гетом, и возвращает его и забевает им же однотипным его.... :D Чувак где вывод всех комментариев на странице?
     
  15. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Так смотри
    if(isset ($_GET['id']))


    {

    $id = $_GET['id'] ;


    }
    Эта фукция ловит id заметки который гетом передается на эту страницу. я ее присваеваю два раза раз вверху файла раз здесь. Так как не получается сделать глобальную переменную . Далее подключение к бд идет в другом файле. сдесь только выборка и вывод рекурсии. Да я не спорю код у меня карявый вобще говнокод. Ну пока что лучше не умею извените. Если хочешь мне помочь я буду даже рад очень честно. Я вижу что ты в этом ну намного лучше меня шаришь так может тогда ты мне немного подскажешь или научишь немного как что писать и что учить что бы я знал как правильно делать? За это буду благодарен. И извени что долго не отвечал был сильно занят.
     
  16. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Dron-Boy у тебя комментарии в базе есть? Где их вывод ? Там id передавай на каждый комментарий тем способом который я тебе скинул вывод в data-id свой уник идентификатор комментария какой тут гет запрос ты о чём?
     
  17. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Да.
    --- Добавлено ---
    PHP:
    1. <?
    2.      
    3.        error_reporting(E_ALL);
    4. function get_cat() {
    5.      if (isset ($_GET["id"])){
    6.            $id_z =$_GET["id"];
    7.          
    8.        }
    9.     //запрос к базе данных
    10.     $sql = "SELECT * FROM comments WHERE id_zam = $id_z";
    11.     $result = mysql_query($sql);
    12.     if(!$result) {
    13.         return NULL;
    14.     }
    15.     $arr_cat = array();
    16.     if(mysql_num_rows($result) != 0) {
    17.  
    18.         //В цикле формируем массив
    19.         for($i = 0; $i < mysql_num_rows($result);$i++) {
    20.             $row = mysql_fetch_array($result,MYSQL_ASSOC);
    21.            
    22.  
    23.             //Формируем массив, где ключами являются адишники на родительские категории
    24.             if(empty($arr_cat[$row['parent_id']])) {
    25.                 $arr_cat[$row['parent_id']] = array();
    26.             }
    27.             $arr_cat[$row['parent_id']][] = $row;
    28.         }
    29.         //возвращаем массив
    30.         return $arr_cat;
    31.     }
    32.    
    33. }
    34. function viev_cat($arr,$parent_id = 0){
    35.   if(empty($arr [$parent_id])){
    36.       return;
    37.      
    38.   }
    39.     echo'<ul class="coment"><li>';
    40.      for($i = 0; $i< count ($arr[$parent_id]); $i ++){
    41.          echo'<div><b>'.$arr[$parent_id][$i]['name'].'</b> <br>
    42.         <p>'.$arr[$parent_id][$i]['comment'].'</p><span> Дата: '.$arr[$parent_id][$i]['date_add'].'<input type="button" onclick="ADD_BUTTON(id)"  name="add_art" id="btn" value="Ответить" />
    43.        
    44.         ';
    45.          echo'</span></div>';
    46.          //Вот здесь я каждому коментарию присваиваю свой id
    47.          //Так у меня было изначально.
    48.          global $id_com;
    49.         $id_com =$arr[$parent_id][$i]['id'];
    50.         //
    51.          viev_cat($arr, $arr[$parent_id][$i]['id']);
    52.      
    53.      }
    54.      echo'</li></ul>';
    55.    
    56.    
    57. }    
    58.     $res = get_cat();
    59.        viev_cat($res);
    60.  
    61.        
    62.         ?>
    63.          
    --- Добавлено ---
    Это или рекурсия кривая (писал по вот этому уроку http://webformyself.com/vyvod-mnogourovnevogo-menyu-s-neogranichennym-urovnem-vlozhennosti/) или я не знаю. Когда я присваиваю каждому коменту свой Id то передается все ровно либо id первого комента либо последнего. Это ты можешь затестить тут вот http://dronboy.esy.es/wiev_post.php?id=9 по коментируй и сам все увидишь.
     
  18. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Dron-Boy я тебе вверху скинул грамотно построенную выборку, используй её для выбора комментариев.
     
  19. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    PHP:
    1.    <?php
    2.     function getDataParams($host, $dbname, $user, $password, $charset)
    3.     {
    4.         // Эта функция служит для возврата массива параметров в бд учись разделять код. Грамотно.
    5.         // А ещё лучше в будущем освой ООП и перепиши данное на ккласами и объектами, а пока и так норм.
    6.         return array(
    7.             'host' => $host,
    8.             'new_blog' => $dbname,
    9.             'user' => $user,
    10.             'password' => $password,
    11.             'charset' => $charset
    12.         );
    13.     }
    14. ?>
    15. <?php
    16.     function connect($params) {
    17.     // это функция возвращает твоё подключение к базе данных методом PDO::STATEMENT
    18.     // Не используй mysql_ функции они уже устарели, и рано или поздно уйдут скоро из поддержки php
    19.     $dsn = "mysql:host={$params['host']};charset={$params['charset']};dbname={$params['dbname']}";
    20.     $db = new \PDO($dsn, $params['user'], $params['password']);
    21.     return $db;
    22.     }
    23. ?>
    24. <?php
    25.         // Не увидел твоих параметров поэтому напишу произвольные
    26.         // Надеюсь поймёшь что куда заполнять
    27.  
    28.         //теперь мы имеем подключение к базе данных которое хранится в $db и можем спокойно строчить запросы
    29.         // Так дальше что то тут твоё не понятно ты получаешь так понимаю id из гет запроса какой то
    30.         if (isset ($_GET["id"])){
    31.             // если уж ты делаешь выборку по полученному гету то саму выборку тоже прячь в условие если нету такого гет запроса зачем тебе делать бестолковое подключение к бд :)
    32.             //  А ещё оно может быть с ошибочкой если у тебя будет пустая переменная  $id_z  будет....
    33.             $id_z =$_GET["id"];
    34.      
    35.             $params = getDataParams('localhost', 'new_blog', 'Viktor', '12345', 'utf8');
    36.             // Ниже вызовим нашу функцию подключения к бд по средставом PDO
    37.             $db = connect($params);
    38.  
    39.             $result = $db->prepare('SELECT * FROM comments WHERE id_zam=:$id'); // Это подготавлемый запрос служит для того чтобы в базу
    40.             // не проникли всякие языческие знаки, но это магия пока сильна поэтому прими как должное что оно просто так должно быть
    41.             $result->bindParam(':id', $id_z); // присваивание параметров происходит таким образом думаю аналогию проведёшь.
    42.             $result->execute(); // Ну вот наш запрос готов и pdo метод execute отправляет наш запрос к бд.
    43.             $result = $result->fetchAll(); // теперь данным методом получаем наш массив из бд :) всё генеально и просто :)
    44.             echo '<pre>';
    45.             print_r($result);
    46.             echo '</pre>';
    47.      
    48.         }
    49.  
    50. ?>
    Вот скрин он на скрине выводи пустой массив. Если что поля в БД называются name =имя, comment = коментарий, date_add дата
     

    Вложения:

  20. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Дебаж воткни

    вот такую конструкцию

    PHP:
    1. if (empty ($id_z)) {echo 'Привет вася я пустая переменная $id_z';}
    Я всегда пише себе привет вася когда дебажу php код. Так что как то так. Если у тебя переменная не пуста то выведи её и сделай запрос в mysql и посмотри, есть ли там id такой то
    --- Добавлено ---
    и я имел ввиду переписать вывод комментариев по моему образу и подобию кода.
    --- Добавлено ---
    всё я спать у меня час ночи завтра на работу приду надеюсь увидеть твой переписанный код по моему образу и подобию, я тебе оставил тут кучу подсказок и всяких магических плюшек
     
  21. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Так смотри я сделал твое подключение и запрос в бд как ты мне скинул вот оно выводит все норм. но ошибка теперь Warning: mysql_num_rows() expects parameter 1 to be resource, array given in C:\OpenServer\domains\new-blog\wiev_post.php on line 201. Почему то в mysql_num_rows нечего не попадает.
    вот код
    PHP:
    1. <?
    2.      
    3.        error_reporting(E_ALL);
    4. function get_cat() {
    5.   function getDataParams($host, $dbname, $user, $password, $charset)
    6.     {
    7.         // Эта функция служит для возврата массива параметров в бд учись разделять код. Грамотно.
    8.         // А ещё лучше в будущем освой ООП и перепиши данное на ккласами и объектами, а пока и так норм.
    9.         return array(
    10.             'host' => $host,
    11.             'dbname' => $dbname,
    12.             'user' => $user,
    13.             'password' => $password,
    14.             'charset' => $charset
    15.         );
    16.     }
    17.  
    18.     function connect($params) {
    19.     // это функция возвращает твоё подключение к базе данных методом PDO::STATEMENT
    20.     // Не используй mysql_ функции они уже устарели, и рано или поздно уйдут скоро из поддержки php
    21.     $dsn = "mysql:host={$params['host']};charset={$params['charset']};dbname={$params['dbname']}";
    22.     $db = new \PDO($dsn, $params['user'], $params['password']);
    23.     return $db;
    24.     }
    25.  
    26.         // Не увидел твоих параметров поэтому напишу произвольные
    27.         // Надеюсь поймёшь что куда заполнять
    28.  
    29.         //теперь мы имеем подключение к базе данных которое хранится в $db и можем спокойно строчить запросы
    30.         // Так дальше что то тут твоё не понятно ты получаешь так понимаю id из гет запроса какой то
    31.         if (isset ($_GET["id"])){
    32.             // если уж ты делаешь выборку по полученному гету то саму выборку тоже прячь в условие если нету такого гет запроса зачем тебе делать бестолковое подключение к бд :)
    33.             //  А ещё оно может быть с ошибочкой если у тебя будет пустая переменная  $id_z  будет....
    34.             $id_z =$_GET["id"];
    35.      
    36.             $params = getDataParams('localhost', 'new_blog', 'Viktor', '12345', 'utf8');
    37.             // Ниже вызовим нашу функцию подключения к бд по средставом PDO
    38.             $db = connect($params);
    39.  
    40.             $result = $db->prepare('SELECT * FROM comments WHERE id_zam=:id'); // Это подготавлемый запрос служит для того чтобы в базу
    41.             // не проникли всякие языческие знаки, но это магия пока сильна поэтому прими как должное что оно просто так должно быть
    42.             $result->bindParam(':id', $id_z); // присваивание параметров происходит таким образом думаю аналогию проведёшь.
    43.             $result->execute(); // Ну вот наш запрос готов и pdo метод execute отправляет наш запрос к бд.
    44.             $result = $result->fetchAll(); // теперь данным методом получаем наш массив из бд :) всё генеально и просто :)
    45.             echo '<pre>';
    46.             print_r($result);
    47.             echo '</pre>';
    48.      
    49.         }
    50.     $arr_cat = array();
    51.     if(mysql_num_rows($result) != 0) {
    52.  
    53.         //В цикле формируем массив
    54.         for($i = 0; $i < mysql_num_rows($result);$i++) {
    55.             $row = mysql_fetch_array($result,MYSQL_ASSOC);
    56.            
    57.  
    58.             //Формируем массив, где ключами являются адишники на родительские категории
    59.             if(empty($arr_cat[$row['parent_id']])) {
    60.                 $arr_cat[$row['parent_id']] = array();
    61.             }
    62.             $arr_cat[$row['parent_id']][] = $row;
    63.         }
    64.         //возвращаем массив
    65.         return $arr_cat;
    66.     }
    67.    
    68. }
    69. function viev_cat($arr,$parent_id = 0){
    70.   if(empty($arr [$parent_id])){
    71.       return;
    72.      
    73.   }
    74.     echo'<ul class="coment"><li>';
    75.      for($i = 0; $i< count ($arr[$parent_id]); $i ++){
    76.          echo'<div><b>'.$arr[$parent_id][$i]['name'].'</b> <br>
    77.         <p>'.$arr[$parent_id][$i]['comment'].'</p><span> Дата: '.$arr[$parent_id][$i]['date_add'].'<input type="button" onclick="ADD_BUTTON(id)"  name="add_art" id="btn" value="Ответить" />
    78.        
    79.         ';
    80.          echo'</span></div>';
    81.          //Вот здесь я каждому коментарию присваиваю свой id
    82.          //Так у меня было изначально.
    83.          global $id_com;
    84.         $id_com =$arr[$parent_id][$i]['id'];
    85.         //
    86.          viev_cat($arr, $arr[$parent_id][$i]['id']);
    87.      
    88.      }
    89.      echo'</li></ul>';
    90.    
    91.    
    92. }    
    93.     $res = get_cat();
    94.        viev_cat($res);
    95.  
    96.      
    97.      
    98.         ?>
    99.          
     

    Вложения:

  22. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    @Dron-Boy, @askanim тебе PDO предложил, его нельзя мешать с расширением mysql. Почитай про PDO
     
  23. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Хорошо. Я не знал этого.
     
  24. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Dron-Boy зачем тебе mysql num rows я же тебе написал комментарии чел, ты уже имеешь массив данных из бд бери его, в цикл и выводи свои данные через echo. Зачем ты гоняешь ёлки просто так php машину делаешь какие то не понятные телодвижения ищи всё строки с Id твоего родителя и просто в тупую выводи все выбраные элементы и присваивай им их id в атрибут data-id, ты там какие то конструкции пишешь зачем... Пишу же блин возьми мой пример и поиграйся с ним, посмотри как работает чудо механизм. Там после вообще элементарно щёлкаешь по элементу получаешь в js по attr по средством jquery атрибут data-id свой там делаешь ajax запрос на страницу обработки посылаешь туда пост запрос обрабатываешь его там что нужно и возвращаешь нужный ответ в любом удобном формате хоть сконфигурированную html страницу хоть массив хоть просто переменную, хоть массив данных в формате json что угодно блин.

    вот тебе ссылка,



    На смотри всё от начала до конца повторяй за ним всё дюйм в дюйм. И пока до конца не досмотришь и не поймёшь всё дальше не дёргайся как посмотришь всё, зайди на ютуб к нему в плей листы и увидишь там php практика и начни смотреть её, и опять же повторяй пока он пишет и ты пиши, и учи. как всё посмотришь вернись к своей задачи и решишь её за 5 минут.
     
    #24 askanim, 19 июл 2016
    Последнее редактирование: 19 июл 2016
  25. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    @askanim, это какой-то новый попов чтоль?