Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php массив / 19 сообщений из 19, страница 1 из 1
17.01.2011, 15:24
    #37062752
androidx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
Всем доброго времени суток. Прошу еще раз помощи по этому-же вопросу, так как не получил никакого ответа. Скачал 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
17.01.2011, 16:29
    #37062879
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
Попробуйте для начала включить вывод ошибок, если этого не сделано.


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


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


Подключил никаких ошибок невыводит :(
...
Рейтинг: 0 / 0
17.01.2011, 16:48
    #37062926
sxq
sxq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
Для начала, что за объект response?
в какой кодировке у вас все это работает?
Что выдает print_r($row) внутри цикла?
Документацию по функции json_encode http://www.php.net/manual/en/function.json-encode.php изучили на предмет кодировок и констант?
...
Рейтинг: 0 / 0
17.01.2011, 16:58
    #37062944
androidx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
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
17.01.2011, 17:01
    #37062951
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
А сопоставление соединения указано?
...
Рейтинг: 0 / 0
17.01.2011, 17:04
    #37062955
sxq
sxq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
Хорошо, что выдает print_r($response) ?
Согласитесь, что чудес не бывает.
Совместите оба скрипта, что бы выводилось из MySql и Оракла (последовательно) и сравните в чем разница.
...
Рейтинг: 0 / 0
17.01.2011, 17:11
    #37062966
androidx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
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
17.01.2011, 17:21
    #37062984
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
Так может в регистре ключей дело?
...
Рейтинг: 0 / 0
17.01.2011, 17:23
    #37062986
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
Array ( [0] => 13 [ID] => 13 [1] => 52367 РљР [AUTO_NUMBER] => 52367 РљР [2] => РљР РђР— [AUTO_MARKA] => РљР РђР— )


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


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

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

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

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

Подскажите, пожалуйста, возможно ли избавиться от этого дублирования?
Спасибо.
...
Рейтинг: 0 / 0
16.07.2013, 07:38
    #38332164
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
Телепаты должны догадаться, что вы используете для доступа к БД? Если 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
16.07.2013, 07:54
    #38332168
krevedko13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php массив
Avgust0Я извиняюсь - у меня вопрос оффтоп (но нагуглилась именно эта тема)

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

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

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


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