powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php массив
19 сообщений из 19, страница 1 из 1
php массив
    #37062752
androidx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток. Прошу еще раз помощи по этому-же вопросу, так как не получил никакого ответа. Скачал plugin jqgrid посмотрев демки почитав доки по нему решил применить в своей задаче и наткнулся на грабли при использовании его с Oracle. Проблема заключается в том, что почему-то не могу передать данные массива в json c MySQL проблем нет все прекрасно передается подскажите что я делаю не так для примера привожу код с использованием MySQL и Oracle. Сразу оговорюсь кодировка в двух базах Utf-8

HTML общий
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<link rel="stylesheet" type="text/css" media="screen" href="themes/basic/grid.css" />
<link rel="stylesheet" type="text/css" media="screen" href="themes/jqModal.css" />
</head>
<body>
    <table id="list" class="scroll"></table> 
    <div id="pager" class="scroll" style="text-align:center;"></div>
    
    <script type="text/javascript" src="jquery-1.3.1.min.js"></script>
    <script type="text/javascript" src="jquery.jqGrid.js"></script>
    <script type="text/javascript">
    jQuery(document).ready(function(){ 
        jQuery("#list").jqGrid({
            url:'auto.php',
            datatype: 'json',
            mtype: 'POST',
            colNames:['#', '№ Авто', 'Название'],
            colModel :[
                 {name:'id', index:'id', width: 30 }
                ,{name:'auto_number', index:'auto_number', width: 80 , align:'right'}
                ,{name:'auto_marka', index:'auto_marka', width: 90 }
                ],
            pager: jQuery('#pager'),
            rowNum: 5 ,
            rowList:[ 5 , 10 , 30 ],
            sortname: 'id',
            sortorder: "asc",
            viewrecords: true,
            imgpath: 'themes/basic/images',
            caption: 'Данные авто'
        }); 
    }); 
    </script>
</body>
</html>

PHP MySQL все передается и отображается
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?php
  $dbh =  new  PDO('mysql:host=localhost;dbname=test', 'test', 'test');
  $res = $dbh->query('SELECT * FROM auto ');
 $i= 0 ;
     while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
        $response->rows[$i]['id']=$row['id'];
        $response->rows[$i]['cell']= array ($row['id'], $row['id'], $row['auto_number'] ,$row['auto_marka ']);
       $i++;
 }   
     echo   json_encode ($response);

 echo  выводит вот такой массив значений 
[color=blue]{"rows":[{"id":"1","cell":["1","Иванов","Иван","Иванович"]},{"id":"2","cell":["2","Петров","Петр","Петрович"]},{"id":"3","cell":["3","Сидоров","Сидор","Сидорович"]},{"id":"4","cell":["4","Сергеев","Сергей","Сергеевич"]},{"id":"5","cell":["5","Васильев","Василий","Васильевич"]},{"id":"6","cell":["6","Тарасов","Тарас","Тарасович"]}]}[/color]


А вот с данными из Oracle ничего не выходит и не отбражаются в jgrid подскажите что делаю не так? HTML один и тот же использую.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?php
  include  ("connect.php");
$conn = oci_connect("test", "test", "test/MAIN");

$query = "SELECT id, auto_number, auto_marka FROM AUTO "; // запрос отрабатывает  данные выбираются проверил

$statement = oci_parse ($conn, $query);

oci_execute ($statement);
$i= 0 ;
  while  ($row = oci_fetch_array ($statement, OCI_BOTH)) {

  $response->rows[$i]['id']=$row['id'];
  $response->rows[$i]['cell']= array ($row['id'], $row['auto_number'] ,$row['auto_marka ']);

   /*echo "[id]  ".$row['ID']." ";
    echo "[auto_marka] ".$row['auto_marka']."";*/ 	
	 $i++;
}
 echo   json_encode ($response);
?>
[color=red]а здесь  echo  выводит вот  что [/color] {"rows":{"1":{"id": null ,"cell":[ null , null , null ]},"2":{"id": null ,"cell":[ null , null , null ]},"3":{"id": null ,"cell":[ null , null , null ]},"4":{"id": null ,"cell":[ null , null , null ]},"5":{"id": null ,"cell":[ null , null , null ]},"6":{"id": null ,"cell":[ null , null , null ]}}}
я так понимаю что ошибка, где-то здесь-
$response->rows[$i]['id']=$row['id'];
$response->rows[$i]['cell']=array($row['id'], $row['auto_number'] ,$row['auto_marka ']);
только что не так здесь, не могу понять. Помогите плиз разобраться.
...
Рейтинг: 0 / 0
php массив
    #37062879
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте для начала включить вывод ошибок, если этого не сделано.


Код: plaintext
1.
 ini_set ('display_errors',  1 );
 error_reporting ( E_ALL );
...
Рейтинг: 0 / 0
php массив
    #37062898
androidx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HettПопробуйте для начала включить вывод ошибок, если этого не сделано.


Код: plaintext
1.
 ini_set ('display_errors',  1 );
 error_reporting ( E_ALL );


Подключил никаких ошибок невыводит :(
...
Рейтинг: 0 / 0
php массив
    #37062926
sxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала, что за объект response?
в какой кодировке у вас все это работает?
Что выдает print_r($row) внутри цикла?
Документацию по функции json_encode http://www.php.net/manual/en/function.json-encode.php изучили на предмет кодировок и констант?
...
Рейтинг: 0 / 0
php массив
    #37062944
androidx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sxqДля начала, что за объект response?
в какой кодировке у вас все это работает?
Что выдает print_r($row) внутри цикла?
Документацию по функции json_encode http://www.php.net/manual/en/function.json-encode.php изучили на предмет кодировок и констант?

Кодировку я в самом начале написал что в обеих базах что в MySQL и Oracle - utf-8
вот что выдает print_r($row)
Array ( [0] => 13 [ID] => 13 [1] => 52367 КР[AUTO_NUMBER] => 52367 КР[2] => КРАЗ [AUTO_MARKA] => КРАЗ ) 1Array ( [0] => 17 [ID] => 17 [1] => АК 8084 АО [AUTO_NUMBER] => АК 8084 АО [2] => MAN 18410 FSL [AUTO_MARKA] => MAN 18410 FSL ) 1Array ( [0] => 18 [ID] => 18 [1] => 12706 КО [AUTO_NUMBER] => 12706 КО [2] => VOLVO FN-12 [AUTO_MARKA] => VOLVO FN-12 ) 1Array ( [0] => 20 [ID] => 20 [1] => АК 8038 АО [AUTO_NUMBER] => АК 8038 АО [2] => MAN TG-460A [AUTO_MARKA] => MAN TG-460A ) 1Array ( [0] => 21 [ID] => 21 [1] => 12187 КО [AUTO_NUMBER] => 12187 КО [2] => VOLVO FN-12 [AUTO_MARKA] => VOLVO FN-12 ) 1Array ( [0] => 22 [ID] => 22 [1] => 12189 КО [AUTO_NUMBER] => 12189 КО [2] => VOLVO FN-12 [AUTO_MARKA] => VOLVO FN-12 ) 1Array ( [0] => 23 [ID] => 23 [1] => 09-83 КРХ [AUTO_NUMBER] => 09-83 КРХ [2] => SCANIA T-112 [AUTO_MARKA] => SCANIA T-112 ) 1Array ( [0] => 24 [ID] => 24 [1] => АК 0442 АО [AUTO_NUMBER] => АК 0442 АО [2] => КАМАЗ [AUTO_MARKA] => КАМАЗ ) 1Array ( [0] => 25 [ID] => 25 [1] => 40-06 КРР[AUTO_NUMBER] => 40-06 КРР[2] => КРАЗ - 250 [AUTO_MARKA] => КРАЗ - 250 ) 1Array ( [0] => 26 [ID] => 26 [1] => 40-05 KPP [AUTO_NUMBER] => 40-05 KPP [2] => КРАЗ [AUTO_MARKA] => КРАЗ ) 1Array ( [0] => 27 [ID] => 27 [1] => АК 3704 АТ [AUTO_NUMBER] => АК 3704 АТ [2] => VOLVO FN-12 [AUTO_MARKA] => VOLVO FN-12 ) 1Array ( [0] => 28 [ID] => 28 [1] => AK 8037 AO [AUTO_NUMBER] => AK 8037 AO [2] => RENO-MAGNUM [AUTO_MARKA] => RENO-MAGNUM ) 1Array ( [0] => 29 [ID] => 29 [1] => 5313 KPM [AUTO_NUMBER] => 5313 KPM [2] => KAMAZ-53212 [AUTO_MARKA] => KAMAZ-53212 ) 1Array ( [0] => 30 [ID] => 30 [1] => 5318 KPM [AUTO_NUMBER] => 5318 KPM [2] => KAMAZ-53212 [AUTO_MARKA] => KAMAZ-53212 ) 1Array ( [0] => 31 [ID] => 31 [1] => 04082КО [AUTO_NUMBER] => 04082КО [2] => КРАЗ-255Б [AUTO_MARKA] => КРАЗ-255Б ) 1Array ( [0] => 32 [ID] => 32 [1] => 12707 КО [AUTO_NUMBER] => 12707 КО [2] => VOLVO FN-12 [AUTO_MARKA] => VOLVO FN-12 ) 1Array ( [0] => 3 [ID] => 3 [1] => 90965 КР[AUTO_NUMBER] => 90965 КР[2] => УАЗ 3943 [AUTO_MARKA] => УАЗ 3943 ) 1Array ( [0] => 6 [ID] => 6 [1] => 90963 КР[AUTO_NUMBER] => 90963 КР[2] => УАЗ 3909 [AUTO_MARKA] => УАЗ 3909 ) 1Array ( [0] => 2 [ID] => 2 [1] => АК 6638 АО [AUTO_NUMBER] => АК 6638 АО [2] => DRAGON [AUTO_MARKA] => DRAGON ) 1Array ( [0] => 7 [ID] => 7 [1] => 11560 КО [AUTO_NUMBER] => 11560 КО [2] => ГАЗ 66 [AUTO_MARKA] => ГАЗ 66 ) 1Array ( [0] => 8 [ID] => 8 [1] => 11509 КО [AUTO_NUMBER] => 11509 КО [2] => ГАЗ 66 [AUTO_MARKA] => ГАЗ 66 ) 1Array ( [0] => 9 [ID] => 9
...
Рейтинг: 0 / 0
php массив
    #37062951
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сопоставление соединения указано?
...
Рейтинг: 0 / 0
php массив
    #37062955
sxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, что выдает print_r($response) ?
Согласитесь, что чудес не бывает.
Совместите оба скрипта, что бы выводилось из MySql и Оракла (последовательно) и сравните в чем разница.
...
Рейтинг: 0 / 0
php массив
    #37062966
androidx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sxqХорошо, что выдает print_r($response) ?
Согласитесь, что чудес не бывает.
Совместите оба скрипта, что бы выводилось из MySql и Оракла (последовательно) и сравните в чем разница.

print_r($response) выдает вот такую
stdClass Object ( [rows] => Array ( [1] => Array ( [id] => [cell] => Array ( [0] => [1] => [2] => ) ) ) ) 1stdClass Object ( [rows] => Array ( [1] => Array ( [id] => [cell] => Array ( [0] => [1] => [2] => ) ) [2] => Array ( [id] => [cell] => Array ( [0] => [1] => [2] => ) ) ) ) 1stdClass Object ( [rows] => Array ( [1] => Array ( [id] => [cell] => Array ( [0] => [1] => [2] => ) ) [2] => Array ( [id] => [cell] => Array ( [0] => [1] => [2] => ) ) [3] => Array ( [id] => [cell] => Array ( [0] => [1] => [2] => ) ) ) ) 1stdClass Object ( [rows] =>
...
Рейтинг: 0 / 0
php массив
    #37062984
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так может в регистре ключей дело?
...
Рейтинг: 0 / 0
php массив
    #37062986
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Array ( [0] => 13 [ID] => 13 [1] => 52367 РљР [AUTO_NUMBER] => 52367 РљР [2] => РљР РђР— [AUTO_MARKA] => РљР РђР— )


$response->rows[$i]['id']=$row['id'];
...
Рейтинг: 0 / 0
php массив
    #37063004
androidx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HettArray ( [0] => 13 [ID] => 13 [1] => 52367 РљР [AUTO_NUMBER] => 52367 РљР [2] => РљР РђР— [AUTO_MARKA] => РљР РђР— )


$response->rows[$i]['id']=$row['id'];

Невиже в этом трабл мне в MySQL тоже самое отдает
...
Рейтинг: 0 / 0
php массив
    #37063030
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вывод ошибок включили?
...
Рейтинг: 0 / 0
php массив
    #37063045
androidx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HettВывод ошибок включили?

В том то и веселуха что ошибок ет
...
Рейтинг: 0 / 0
php массив
    #37063075
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не верю. Уровень ошибок какой?
...
Рейтинг: 0 / 0
php массив
    #37063197
sxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для начала нужно отказаться от символов отличных от латинских в результатах выборки из базы.
Далее все же детально изучить http://ru.php.net/manual/en/function.json-encode.php на предмет второго параметра (константы)
и обязательно включить максимальную разговорчивость PHP на предмет ошибок, предупреждений и т.д.
Все же уточните кодировку данных из базы данных, переключите свой браузер насильно в UTF-8, нужно убедиться что данные именно в нужной кодировке.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
php массив
    #38332137
Avgust0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я извиняюсь - у меня вопрос оффтоп (но нагуглилась именно эта тема)

Для подсказки при разработке использую <pre> + print_r($v)
И очень напрягает дублирование записей в результате: [номер]=>значение, [название]=>значение
Как раз, как в листинге в этой теме:
Array ( [0] => 13 [ID] => 13 ...)

Подскажите, пожалуйста, возможно ли избавиться от этого дублирования?
Спасибо.
...
Рейтинг: 0 / 0
php массив
    #38332164
mhx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mhx
Гость
Телепаты должны догадаться, что вы используете для доступа к БД? Если PDO, то для метода fetch() укажите параметром либо PDO::FETCH_ASSOC, либо PDO::FETCH_NUM. Если mysqli, то для mysqli_result::fetch_array() юзайте либо MYSQLI_ASSOC, либо MYSQLI_NUM. Для древнего mysql_fetch_array() юзайте либо MYSQL_ASSOC, либо MYSQL_NUM, либо методы mysql_fetch_assoc() и mysql_fetch_row().
Всё это описано в мануале, кстати.
...
Рейтинг: 0 / 0
php массив
    #38332168
krevedko13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Avgust0Я извиняюсь - у меня вопрос оффтоп (но нагуглилась именно эта тема)

Для подсказки при разработке использую <pre> + print_r($v)
И очень напрягает дублирование записей в результате: [номер]=>значение, [название]=>значение
Как раз, как в листинге в этой теме:
Array ( [0] => 13 [ID] => 13 ...)

Подскажите, пожалуйста, возможно ли избавиться от этого дублирования?
Спасибо.
Не совсем понял вопрос, но рискну предположить что вам не очень нравится внешний вид результата.
Если так - советую поставить расширение xdebug и пользоваться var_dump($var)
...
Рейтинг: 0 / 0
php массив
    #38333099
Avgust0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mhx, спасибо Вам большое - я понял глупость своего вопроса
Очевидно-же, что функция print_r отрабатывает входные данные.
И именно в них у меня и создаются дубли - как раз упомянутым "древним" mysql_fetch_array() с дефолтным MYSQL_BOTH.
Наивно доверился стандартному API CMS, функции чтения из БД не пере/проверял. А там "воно_как" ))

Спасибо за подсказку.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]