Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с API

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Пытаюсь написать API для CMS Pagekit
Иван Новиков
Отправлено: 05 Апреля, 2017 - 16:29:44
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2017  


Помог: 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 результат.
CODE (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.
Если, что простите Недовольство, огорчение
 
 Top
Мелкий Супермодератор
Отправлено: 05 Апреля, 2017 - 16:53:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Иван Новиков пишет:
Но ничего не происходит...

Иван Новиков пишет:
$response->$vk->label;

E_NOTICE, вероятен E_FATAL
Почему вы их не видите - смотрите настройки error_reporting, display_errors


-----
PostgreSQL DBA
 
 Top
Иван Новиков
Отправлено: 05 Апреля, 2017 - 17:06:37
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2017  


Помог: 0 раз(а)




Мелкий пишет:
E_NOTICE, вероятен E_FATAL
Почему вы их не видите - смотрите настройки error_reporting, display_errors

Извините, профан полный в программировании. Мне нужно убрать $ чтобы получился просто vk? И где смотреть эти настройки. Спасибо.
(Добавление)
Мелкий пишет:

Иван Новиков пишет:
$response->$vk->label;


Извините, не подскажешь как это в код внедрить правильно? А то до меня не дойдет пока не увижу. Недовольство, огорчение
 
 Top
Fart
Отправлено: 05 Апреля, 2017 - 17:45:28
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




Спойлер (Отобразить)


По сабжу: вы работаете с json. Php код обрабатывает. Вы сказали "увидите, поймете как"
http://www[dot]codeisart[dot]ru/blog/cre[dot][dot][dot]g-json-data-php/ вот ссылка с примером.
 
 Top
Иван Новиков
Отправлено: 05 Апреля, 2017 - 19:08:03
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2017  


Помог: 0 раз(а)




Fart пишет:
Спойлер (Отобразить)


По сабжу: вы работаете с json. Php код обрабатывает. Вы сказали "увидите, поймете как"
http://www[dot]codeisart[dot]ru/blog/cre[dot][dot][dot]g-json-data-php/ вот ссылка с примером.

Не нужно материться) Спасибо, полезная ссылка. Завтра посмотрю)
 
 Top
Иван Новиков
Отправлено: 16 Апреля, 2017 - 06:57:19
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2017  


Помог: 0 раз(а)




Ребята, работаю над тем же проектом. Помогите понять, что не так? Почему-то не переводит слова. Я думал, что я как-то не так заполняю массив, может быть в массиве нельзя использовать переменные?
PHP:
скопировать код в буфер обмена
  1.  
  2.                     //Строки с английскими словами
  3.                     $ingredients_lang_en = array('only_chocolate','lingonberry','blueberries','goji','strawberry','peanut','hazelnut','gretsky');
  4.                     $type_of_chocolate_lang_en = array('bitter','lactic','caramel','strawberrychoco');
  5.                     $decor_lang_en = array('standart','birthday','wedding','new_year','office_party');
  6.                     $for_whom_lang_en = array('for_all','for_her','for_him','for_myself','for_the_company');
  7.                    
  8.                     //Строки с русскими словами
  9.                     $ingredients_lang_ru = array('Только шоколад','Брусника','Черника','Годжи','Клубника','Арахис','Фундук','Грецкий орех');
  10.                     $type_of_chocolate_lang_ru = array('Горький','Молочный','Карамельный','Клубничный');
  11.                     $decor_lang_ru = array('Стандартное','День рождение','Свадьба','Новый год','Корпоратив');
  12.                     $for_whom_lang_ru = array('Для всех','Для неё','Для него','Для себя','Для компании');
  13.                    
  14.                     //Поиск и замена слов
  15.                     $search = array($ingredients_lang_en,$type_of_chocolate_lang_en,$decor_lang_en,$for_whom_lang_en);
  16.                     $replace = array($ingredients_lang_ru,$type_of_chocolate_lang_ru,$decor_lang_ru,$for_whom_lang_ru);
  17.                    
  18.                     $ingredients = str_ireplace($search,$replace,$ingredients);
  19.                     $type_of_chocolate = str_ireplace($search,$replace,$type_of_chocolate);
  20.                     $decor = str_ireplace($search,$replace,$decor);
  21.                     $for_whom = str_ireplace($search,$replace,$for_whom);
  22.  

(Добавление)
Нашел ошибку. Надо было использовать array_merge.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB