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
Форумы портала PHP.SU :: Версия для печати :: JSON и PHP кодировка
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » JSON и PHP кодировка

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

1. Albinos4210 - 24 Октября, 2016 - 21:51:39 - перейти к сообщению
Подскажите пожалуйста. Пишу программу для андроида, надо связать через JSON БД. Но столкнулся с кодировкой(наверное)
PHP:
скопировать код в буфер обмена
  1. $con = mysqli_connect ( HOST, USER, PASS, DB );
  2. mysql_query('SET CHARACTER SET utf8');
  3. $sql = "select * from s_products ORDER BY name LIMIT 1000,100";
  4. $res = mysqli_query ( $con, $sql );
  5. $result = array ();
  6. while($row = mysqli_fetch_array($res)){
  7. array_push($result, array('id'=>$row[0], 'name'=>$row[3]
  8. ));
  9. }
  10. $json=json_encode (array ("result" => $result) );
  11. echo $json;
  12. mysqli_close ( $con );

Проблема только с кирилицей. Выдает
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. {"result":[{"id":"30489","name":null},{"id":"34705","name":"Babyliss EP technology wet and dry 38mm 2073PE"},{"id":"12031","name":null},{"id":"11987","name":null},{"id":"11988","name":null},{"id":"11989","name":null},{"id":"11990","name":null},{"id":"11991","name":null},{"id":"36368","name":null},{"id":"11993","name":null},{"id":"11994","name":null},{"id":"11995","name":null},
  3.  
2. Fart - 25 Октября, 2016 - 11:49:19 - перейти к сообщению
сомнения по поводу данных имеются...

$row[3], то есть вы хотите сказать, что у вас уверенность есть в существовании данных?

mysqli_fetch_array($res) - покажите хотя бы 1 результат этого целиком полученного из субд...

"name":null - сомневаюсь, что кириллица тут виновата... null - это null

и последнее... вдаваться в подробности кода не хочу... но есть подозрения что array_push тут виноват в сплетении полученных данных
3. Albinos4210 - 25 Октября, 2016 - 11:53:04 - перейти к сообщению
http://web[dot]curl[dot]com[dot]ua/json2.php

конечно есть 4 колонка.

на странице видно
{"id":34705,"name":"Babyliss EP technology wet and dry 38mm 2073PE"}
а дальше null
(Добавление)
array_push 90%.
Что делать?
4. Fart - 28 Октября, 2016 - 20:47:02 - перейти к сообщению
Проверяйте кодировку. Просмотрите ответ mfa без создания стека массива
(Добавление)
Так как без искомых данных трудно представить что происходит и уберите аррей пуш. Создайтк массив используя

$result[] =
5. Albinos4210 - 28 Октября, 2016 - 21:07:05 - перейти к сообщению
Iconv в цикл вставил и изменил кодировку row name с 1251 на utf8. Чет с базы выгружалось в вин1251 хотя по настройкам утф8
6. Fart - 28 Октября, 2016 - 21:13:04 - перейти к сообщению
Сравнение может в ср1251?
(Добавление)
Или база в ср1251 переведена ?
7. Albinos4210 - 28 Октября, 2016 - 21:15:12 - перейти к сообщению
Мож, я с телефона пишу. Короче решил.
8. Fart - 28 Октября, 2016 - 21:15:44 - перейти к сообщению
Икона можно , но если есть возможность обойтись перепроверяйте данные и кодировка скрипта частенько выкрутасы показывает
9. Albinos4210 - 28 Октября, 2016 - 21:16:09 - перейти к сообщению
База вся в утф8. Хз чё так.
(Добавление)
Я вывел строку row name показало кучу ???? . Изменил кодировку страницы в мозиле на вин1251 она подошла. И икона в цикл прописал.

 

Powered by ExBB FM 1.0 RC1