За последние 24 часа нас посетили 22287 программистов и 1031 робот. Сейчас ищут 649 программистов ...

Pagekit и API

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

Метки:
  1. MrFallen

    MrFallen Новичок

    С нами с:
    5 апр 2017
    Сообщения:
    18
    Симпатии:
    0
    Добрый день, форумчане.
    Пытаюсь написать небольшое API для CMS Pagekit, но как-то не очень получается, а именно не могу выдернуть информацию со своего API и не могу понять, ошибка в API или в коде, который пытается получить информацию.

    Ссылка на добавление информации в базу.
    Ссылка на API. В конце просто указываем 1, 2, 3 и т.д.

    А теперь код...
    Файл suggestions.php, который лежит в папке api.
    PHP:
    1. <?php
    2. $host = 'localhost';
    3. $database = 'db_simple';
    4. $user = 'db_simple';
    5. $password = 'db_simple_pass';
    6.  
    7. $sql = mysqli_connect($host, $user, $password, $database)
    8.     or die("Ошибка " . mysqli_error($link));
    9.  
    10. $on_suggestion = 1;
    11.  
    12. $query = "SELECT COUNT(*) FROM `pk_formmaker_submission`";
    13. $res = mysqli_query($sql, $query);
    14. $count_records = mysqli_fetch_row($res);
    15. $count_records = $count_records[0];
    16.  
    17. $num_suggestions = ceil($count_records / $on_suggestion);
    18.  
    19. $current_suggestion = isset($_GET['suggestion']) ? (int)$_GET['suggestion'] : 1;
    20.  
    21. if ($current_suggestion < 1)
    22. {
    23.     $current_suggestion = 1;
    24. }
    25.  
    26. elseif ($current_suggestion > $num_suggestions)
    27. {
    28.     $current_suggestion = $num_suggestions;
    29. }
    30.  
    31. $start_from = ($current_suggestion - 1) * $on_suggestion;
    32.  
    33. $query = "SELECT `id`, `status`, `data`, `created` FROM `pk_formmaker_submission` ORDER BY `created` DESC LIMIT $start_from, $on_suggestion";
    34. $res = mysqli_query($sql, $query);
    35.  
    36. while ($row = mysqli_fetch_assoc($res))
    37. {
    38.     echo $row['data'];
    39. }
    40.  
    41. ?>
    Получаем JSON результат.
    Код (Text):
    1. {"vk":{"field":{"id":1,"form_id":2,"priority":1,"type":"sitelink","label":"\u0412\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435","slug":"vk","options":[],"data":{"value":[""],"data":{"data0":{"value":"","link_text":"","blank":0}},"classSfx":"","help_text":"","help_show":"","hasOptions":0,"max_repeat":10,"blank_default":0,"link_text_default":"","href_class":"","multiple":1,"placeholder":"\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: https:\/\/vk.com\/2fe_ru","controls":false,"required":false},"roles":[],"value":[""],"valuedata":{"data0":{"value":"","link_text":"","blank":0}},"formatted":{"data0":"-"}},"slug":"vk","type":{"id":"sitelink","label":"Website link","hasOptions":0,"required":-1,"multiple":1,"controls":-1,"repeatable":-1,"max_repeat":10,"blank_default":0,"link_text_default":"","href_class":""},"label":"\u0412\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435","value":["https:\/\/vk.com\/mrfallen92"],"formatted":{"data0":"-"},"data":{"data0":{"value":"https:\/\/vk.com\/mrfallen92","link_text":"","blank":0}},"field_id":1},"description":{"field":{"id":2,"form_id":2,"priority":2,"type":"textbox","label":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f","slug":"description","options":[],"data":{"value":[],"data":[],"classSfx":"","help_text":"","help_show":"","hasOptions":0,"minLength":100,"maxLength":3000,"rows":4,"placeholder":"\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0439 \u0430\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f","multiple":0,"controls":null,"repeatable":null},"roles":[],"value":[],"valuedata":[],"formatted":[]},"slug":"description","type":{"id":"textbox","label":"Text area","hasOptions":0,"required":-1,"multiple":0,"minLength":0,"maxLength":0,"rows":0,"placeholder":""},"label":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f","value":["\u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043a\u0446\u0438\u0438 \u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043a\u0446\u0438\u0438 \u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043a\u0446\u0438\u0438 \u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043a\u0446\u0438\u0438 \u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043a\u0446\u0438\u0438"],"formatted":[],"data":[],"field_id":2}}
    Пытаемся выдернуть информацию, например ссылку и текст - "Вконтакте".
    PHP:
    1.     <?php
    2.         $json="https://2fe.ru/api/suggestions.php?suggestion=2";
    3.         $response = json_decode(file_get_contents($json,true));
    4.  
    5.         $label = $response->$vk->label;
    6.         $vk_link = $response->$vk->$data->$data0->value;
    7.      
    8.                                                  
    9.         echo $label;
    10.         echo $vk_link;
    11.  
    12.     ?>
    Но ничего не происходит... Помогите пожалуйста.

    P.S.
    Если, что простите :(
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
  3. MrFallen

    MrFallen Новичок

    С нами с:
    5 апр 2017
    Сообщения:
    18
    Симпатии:
    0
    Подскажите пожалуйста, как мне этим правильно воспользоваться? Думаю, что скорее всего я не правильно выдергиваю информацию.
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    $label = $response->vk->label;
    $vk_link = $response->vk->data->data0->value;
     
    MrFallen нравится это.