PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (14): « 1 [2] 3 4 5 6 7 8 9 ... » В конец
Найдено сообщений: 196
Exponat
Отправлено: 19 Апреля, 2016 - 17:23:33 • Тема: Добавление данных в существующий массив • Форум: Вопросы новичков
Ответов: 3 Просмотров: 248
kotyara1979 пишет: Товары вы добавляете не в ту ветку массива.
"Шапка" заказа пишется в $jsonData[], т.е. создается ветка со следующим числовым индексом. Точно таким же образом работает у вас array_push. Для того, что бы данные записались правильно, нужно передавать в array_push $jsonData[нужный числовой индекс ]['contents'].
Спасибо за ответ и наводку! Получилось закинуть в общее дерево. Создал счетчик в начале цикла и подставил его вот так:
array_push($jsonData[$i]["contents"],array("productID" => $arItems["ID"], "productName" => $arItems["NAME"], "quantity" => $arItems["QUANTITY"]));
Но не выводится массив который я добавляю.
Можете еще подсказать что не так?
Как видите ["contents"]=> NULL Хотя должно быть как-то так:
PHP:
скопировать код в буфер обмена
[ 0] =>
[ "orderID" ] =>
string( 4 ) "4767"
[ "orderDescript" ] =>
NULL
"productID" => 34 ,
"productName" => "Супер товар" ,
"quantity" => 1
) ,
"productID" => 56 ,
"productName" => "Чудо товар" ,
"quantity" => 3
)
) ,
}
(Добавление)
Получилось таким макаром:
Спасибо.
(Добавление)
Нет, не получилось, так оно цикл не проходит. Всегда записывается последние данные.
Exponat
Отправлено: 19 Апреля, 2016 - 15:17:41 • Тема: Добавление данных в существующий массив • Форум: Вопросы новичков
Ответов: 3 Просмотров: 248
Здравствуйте.
Создается вот такой массив:
PHP:
скопировать код в буфер обмена
"orderID" => $ar_sales [ "ID" ] ,
"dateCreate" => $ar_sales [ "DATE_INSERT" ] ,
/*"contents" => array(
array(
"productID" => 34,
"productName" => "Супер товар",
"quantity" => 1
),
array(
"productID" => 56,
"productName" => "Чудо товар",
"quantity" => 3
)
),*/
"orderDescript" => $ar_sales [ "USER_DESCRIPTION" ] ,
) ;
Как видите в нем закомментирован ключ "contents" со своим массивчиком. Вот мне и нужно туда вставить данные в такой же структуре.
А вот данные которые я формирую для вставки и вот как я их вставляю:
PHP:
скопировать код в буфер обмена
$dbBasketItems = CSaleBasket:: GetList ( запрос) ;
while ( $arItems = $dbBasketItems -> Fetch ( ) ) {
array_push ( $jsonData , array ( "productID" => $arItems [ "ID" ] , "productName" => $arItems [ "NAME" ] , "quantity" => $arItems [ "QUANTITY" ] ) ) ; }
Но при команде echo json_encode($jsonData); те данные что я добавляю выводятся за общим деревом JSON:
PHP:
скопировать код в буфер обмена
[ { "orderID" : "4763" , "dateCreate" : "" , "orderDescript" : "" } , { "productID" : "40672" , "productName" : "" , "quantity" : "1.00" } , { "productID" : "40664" , "productName" : "" , "quantity" : "1.00" } ]
А нужно чтоб было так:
PHP:
скопировать код в буфер обмена
[ { "orderID" : "4763" , "dateCreate" : "" , "contents" : [ { "productID" : 40672 , "productName" : "" , "quantity" : "1.00" } , { "productID" : 40664 , "productName" : "" , "quantity" : "1.00" } ] , "" orderDescript":" "}]
Можете помочь?
Спасибо.
Exponat
Отправлено: 18 Апреля, 2016 - 14:24:54 • Тема: Как должен выглядеть JSON? • Форум: Вопросы новичков
Ответов: 2 Просмотров: 134
Здравствуйте.
Есть вот к примеру такой код:
PHP:
скопировать код в буфер обмена
"orderID" => 12345 ,
"shopperName" => "Ваня Иванов" ,
"shopperEmail" => "ivanov@example.com" ,
"productID" => 34 ,
"productName" => "Супер товар" ,
"quantity" => 1
) ,
"productID" => 56 ,
"productName" => "Чудо товар" ,
"quantity" => 3
)
) ,
"orderCompleted" => true
) ;
На выходе в браузере выходит такое:
CODE (
javascript ):
скопировать код в буфер обмена
{ "orderID" : 12345 , "shopperName" : "\u 0412\u 0430\u 043d\u 044f \u 0418\u 0432\u 0430\u 043d\u 043e\u 0432" , "shopperEmail" : "ivanov@example.com" , "contents" : [ { "productID" : 34 , "productName" : "\u 0421\u 0443\u 043f\u 0435\u 0440 \u 0442\u 043e\u 0432\u 0430\u 0440" , "quantity" : 1 } , { "productID" : 56 , "productName" : "\u 0427\u 0443\u 0434\u 043e \u 0442\u 043e\u 0432\u 0430\u 0440" , "quantity" : 3 } ] , "orderCompleted" : true }
Подскажите пожалуйста, а если у меня цикл, т.е. идет вывод нескольких корзин? Какой синтаксис и вид будет на странице JSON? Мне просто не понятно как структурировать JSON если будут выводится одинаковое дерево для каждого запроса в выборке по корзинам.
Спасибо.
Exponat
Отправлено: 27 Января, 2016 - 13:40:45 • Тема: Как объединить два массива? • Форум: Вопросы новичков
Ответов: 5 Просмотров: 301
Пробую выводить так:
Но почему-то выводит последнее значение:
Может тут еще while надо?
(Добавление)
Вообщем получилось как-то так, но не уверен нормальное ли это решение:
PHP:
скопировать код в буфер обмена
<?
$array1 = array ( "src" => $arResult [ "UF_GAL" ] ) ; $array2 = array ( "desc" => $arResult [ "UF_DESCPHOTO" ] ) ; ?>
<? foreach ( $result as $key => $value )
{
foreach ( $value as $inner_key => $values )
{
if ( $key == src) {
echo "$values " ;
} ?>
<br/>
<?
if ( $key == desc) {
echo "$values " ;
}
}
}
?>
Exponat
Отправлено: 27 Января, 2016 - 12:12:03 • Тема: Как объединить два массива? • Форум: Вопросы новичков
Ответов: 5 Просмотров: 301
Здравствуйте.
Есть два массива:
1)
2)
Первый массив содержит имена файлов картинок, второй массив их описание.
Как мне в фориче правильно их вывести для полноценного вывода изображений? Т.е. картинка и описание вместе. Они сейчас раздельно и я не могу понять как в один форич впихнуть те два массива для вывода изображений с их описаниями.
Должно быть в таком виде: <img src="<?=$data["src"]?>" alt="<?=$data["descript"]?>" />
$data["src"] это значение первого массива а $data["descript"] это значение со второго массива и чтоб они шли по порядку, как бы слились.
Спасибо!
(Добавление)
Получилось соединить так:
Но какой теперь форич сделать чтоб вывести эти данные вместе?
Exponat
Отправлено: 10 Декабря, 2015 - 03:00:42 • Тема: Проверка с регулярным выражением • Форум: Вопросы новичков
Ответов: 2 Просмотров: 110
Здравствуйте.
Передается GET параметр arrFilter. Но он не простой, на каждой странице он бывает с численными приставками. На пример вот так: arrFilter_116_534308556
Мне нужно сделать какую-то проверку что если вообще встречается такой гет (цифры могут быт разными, но всегда лва нижних подчеркивания)то по условию делаем. Вот что за if должен быть? Регулярные выражения?
Exponat
Отправлено: 07 Октября, 2015 - 10:53:29 • Тема: Вставить изображение после первого абзаца текста • Форум: Вопросы новичков
Ответов: 2 Просмотров: 168
Есть текст в переменной $arResult["DETAIL_TEXT"].
Каким образом можно вставить изображение после первого абзаца в тексте? Или каким-то другим образом отсчитать? Или после 428 символа текста... Как будет правильнее?
Exponat
Отправлено: 16 Сентября, 2015 - 02:39:59 • Тема: foreach в середине запроса • Форум: Вопросы новичков
Ответов: 5 Просмотров: 948
Если массив $t содержит только int данные то в базу идет запись. Но если хоть один элемент массива будет типа string - в базу ничего не записывается и ошибка 1054: Unknown column 'hg' in 'field list'. Пример:
(Добавление)
Судя по всему это связано с тем что в синтаксисе если записываются текстовые данные их нужно оборачивать в кавычки. У нас массив передает данные без кавычек.
(Добавление)
Получилось так:
PHP:
скопировать код в буфер обмена
$s = array ( ( string
) $item -> CityDescriptionRU , ( string
) $item -> StreetDescriptionRU , ( string
) $item -> House , ( string
) $item -> Limitweight ) ; $query = "INSERT INTO `mistexpress_city` (`NAME`, `STREET`, `HOUSE`, `LIMITWEIGHT`) VALUES ('" . implode ( "', '" , $s ) . "')" ;
Exponat
Отправлено: 15 Сентября, 2015 - 17:25:19 • Тема: foreach в середине запроса • Форум: Вопросы новичков
Ответов: 5 Просмотров: 948
Есть такой код:
PHP:
скопировать код в буфер обмена
INSERT INTO `mistexpress_city` (`NAME`, `STREET`, `HOUSE`, `LIMITWEIGHT`) VALUES <br/>
<? foreach ( $t as $item ) { ?>
('
<?= $item -> CityDescriptionRU ?> ','
<?= $item -> StreetDescriptionRU ?> ','
<?= $item -> House ?> ','
<?= $item -> Limitweight ?> ')
<? if ( $item === end ( $t ) ) { echo ';' ; } else { echo ',' ; } ?> <br/>
<? } ?>
Он просто выводит на странице текстовую информацию.
А как мне это все преобразовать в php команду?
Я пробовал так:
PHP:
скопировать код в буфер обмена
<? mysql_query ( "INSERT INTO `mistexpress_city` (`NAME`, `STREET`, `HOUSE`, `LIMITWEIGHT`) VALUES '" . foreach ( $t as $item ) { . "'
(''" . <?= $item -> CityDescriptionRU ?> ."'',''".
<?= $item -> StreetDescriptionRU ?> ."'',''".
<?= $item -> House ?> ."'',''".
<?= $item -> Limitweight ?> ."'')'".
<? if ( $item === end ( $t ) ) { echo ';' ; } else { echo ',' ; } . "'" ?> <? } ?>
Но пишет ошибку: Parse error: syntax error, unexpected 'foreach' (T_FOREACH) in
Какой синтаксис правильный? Как мне этот foreach нормально в запросе вставить?
Exponat
Отправлено: 15 Сентября, 2015 - 10:59:26 • Тема: Помогите с парсингом массива • Форум: Вопросы новичков
Ответов: 5 Просмотров: 4630
Выдает ошибку Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML'
Ведь по сути это не есть xml. Это просто страница с выводом кода.
Сейчас php код таковой:
PHP:
скопировать код в буфер обмена
foreach ( $str -> return -> InterfaceState -> ListCatalog -> Catalog as $catalogItem ) {
foreach ( $catalogItem -> CatalogNameEng -> AppendField as $appendField ) {
echo $appendField -> AppendFieldName . ': ' . $appendField -> AppendFieldValue . '<br>' ;
}
} ?>
Но выдает ошибки:
Notice: Trying to get property of non-object in /int_pars_rss_db.php on line 3
Notice: Trying to get property of non-object in /int_pars_rss_db.php on line 3
Notice: Trying to get property of non-object in /int_pars_rss_db.php on line 3
Notice: Trying to get property of non-object in /int_pars_rss_db.php on line 3
Warning: Invalid argument supplied for foreach() in /int_pars_rss_db.php on line 3
(Добавление)
Просто до return выводит
Но если дальше входить
То выдает:
Warning: Invalid argument supplied for foreach() in /int_rss.php on line 24
Exponat
Отправлено: 15 Сентября, 2015 - 10:32:35 • Тема: Помогите с парсингом массива • Форум: Вопросы новичков
Ответов: 5 Просмотров: 4630
При var_dum($result) получаю вывод ниже. Как его распрарсить? Мне нужно вытянуть в каждой выборке такие поля: ["AppendFieldValue"]=> string(23) "пр. Кирова, 135" ["AppendFieldValue"]=> string(28) "Днепропетровск" ["AppendFieldValue"]=> string(1) "8" ["AppendFieldValue"]=> string(2) "30".
CODE (
php ):
скопировать код в буфер обмена
object( stdClass) #2 (1) {
[ "return" ] =>
object( stdClass) #3 (2) {
[ "InterfaceState" ] =>
string( 2 ) "OK"
[ "ListCatalog" ] =>
object( stdClass) #4 (2) {
[ "Catalog" ] =>
[ 0 ] =>
object( stdClass) #5 (4) {
[ "CatalogNameEng" ] =>
string( 11 ) "Departments"
[ "Code" ] =>
string( 4 ) "0408"
[ "Name" ] =>
string( 41 ) "Днепропетровск Титова"
[ "AppendField" ] =>
[ 0 ] =>
object( stdClass) #6 (2) {
[ "AppendFieldName" ] =>
string( 6 ) "Adress"
[ "AppendFieldValue" ] =>
string( 23 ) "пр. Кирова, 135"
}
[ 3 ] =>
object( stdClass) #9 (2) {
[ "AppendFieldName" ] =>
string( 4 ) "City"
[ "AppendFieldValue" ] =>
string( 28 ) "Днепропетровск"
}
[ 7 ] =>
object( stdClass) #13 (2) {
[ "AppendFieldName" ] =>
string( 21 ) "WarehouseNumberInCity"
[ "AppendFieldValue" ] =>
string( 1 ) "8"
}
[ 9 ] =>
object( stdClass) #15 (2) {
[ "AppendFieldName" ] =>
string( 11 ) "WeightLimit"
[ "AppendFieldValue" ] =>
string( 2 ) "30"
}
}
}
[ 1 ] =>
object( stdClass) #22 (4) {
[ "CatalogNameEng" ] =>
string( 11 ) "Departments"
[ "Code" ] =>
string( 4 ) "2113"
[ "Name" ] =>
string( 48 ) "Харьков Академика Павлова"
[ "AppendField" ] =>
[ 0 ] =>
object( stdClass) #23 (2) {
[ "AppendFieldName" ] =>
string( 6 ) "Adress"
[ "AppendFieldValue" ] =>
string( 45 ) "ул. Академика Павлова, 88/7"
}
[ 3 ] =>
object( stdClass) #26 (2) {
[ "AppendFieldName" ] =>
string( 4 ) "City"
[ "AppendFieldValue" ] =>
string( 14 ) "Харьков"
}
[ 7 ] =>
object( stdClass) #30 (2) {
[ "AppendFieldName" ] =>
string( 21 ) "WarehouseNumberInCity"
[ "AppendFieldValue" ] =>
string( 2 ) "13"
}
[ 9 ] =>
object( stdClass) #32 (2) {
[ "AppendFieldName" ] =>
string( 11 ) "WeightLimit"
[ "AppendFieldValue" ] =>
string( 2 ) "30"
}
}
}
[ 2 ] =>
object( stdClass) #39 (4) {
[ "CatalogNameEng" ] =>
string( 11 ) "Departments"
[ "Code" ] =>
string( 4 ) "1636"
[ "Name" ] =>
string( 12 ) "Сарата"
[ "AppendField" ] =>
[ 0 ] =>
object( stdClass) #40 (2) {
[ "AppendFieldName" ] =>
string( 6 ) "Adress"
[ "AppendFieldValue" ] =>
string( 33 ) "ул. Котовского, 46-а"
}
[ 3 ] =>
object( stdClass) #43 (2) {
[ "AppendFieldName" ] =>
string( 4 ) "City"
[ "AppendFieldValue" ] =>
string( 12 ) "Сарата"
}
[ 7 ] =>
object( stdClass) #47 (2) {
[ "AppendFieldName" ] =>
string( 21 ) "WarehouseNumberInCity"
[ "AppendFieldValue" ] =>
string( 1 ) "1"
}
[ 9 ] =>
object( stdClass) #49 (2) {
[ "AppendFieldName" ] =>
string( 11 ) "WeightLimit"
[ "AppendFieldValue" ] =>
string( 0 ) ""
}
}
}
[ 3 ] =>
object( stdClass) #56 (4) {
[ "CatalogNameEng" ] =>
string( 11 ) "Departments"
[ "Code" ] =>
string( 4 ) "2424"
[ "Name" ] =>
string( 14 ) "Каменка"
[ "AppendField" ] =>
[ 0 ] =>
object( stdClass) #57 (2) {
[ "AppendFieldName" ] =>
string( 6 ) "Adress"
[ "AppendFieldValue" ] =>
string( 33 ) "пер. Гали Кудри, 1-д"
}
[ 3 ] =>
object( stdClass) #60 (2) {
[ "AppendFieldName" ] =>
string( 4 ) "City"
[ "AppendFieldValue" ] =>
string( 14 ) "Каменка"
}
[ 7 ] =>
object( stdClass) #64 (2) {
[ "AppendFieldName" ] =>
string( 21 ) "WarehouseNumberInCity"
[ "AppendFieldValue" ] =>
string( 1 ) "1"
}
[ 9 ] =>
object( stdClass) #66 (2) {
[ "AppendFieldName" ] =>
string( 11 ) "WeightLimit"
[ "AppendFieldValue" ] =>
string( 0 ) ""
}
}
}
[ 4 ] =>
object( stdClass) #73 (4) {
[ "CatalogNameEng" ] =>
string( 11 ) "Departments"
[ "Code" ] =>
string( 4 ) "2009"
[ "Name" ] =>
string( 12 ) "Почаев"
[ "AppendField" ] =>
[ 0 ] =>
object( stdClass) #74 (2) {
[ "AppendFieldName" ] =>
string( 6 ) "Adress"
[ "AppendFieldValue" ] =>
string( 25 ) "ул. Шевченко, 6"
}
[ 3 ] =>
object( stdClass) #77 (2) {
[ "AppendFieldName" ] =>
string( 4 ) "City"
[ "AppendFieldValue" ] =>
string( 12 ) "Почаев"
}
[ 7 ] =>
object( stdClass) #81 (2) {
[ "AppendFieldName" ] =>
string( 21 ) "WarehouseNumberInCity"
[ "AppendFieldValue" ] =>
string( 1 ) "1"
}
[ 9 ] =>
object( stdClass) #83 (2) {
[ "AppendFieldName" ] =>
string( 11 ) "WeightLimit"
[ "AppendFieldValue" ] =>
string( 0 ) ""
}
}
}
}
[ "CatalogState" ] =>
string( 4 ) "ОК"
}
}
}
Тут подойдет <?foreach($xml->xpath('//stdClass Object') as $item):?> ?\
Или может перед самим выводом поменять логику чтоб было легче распарсить?
PHP:
скопировать код в буфер обмена
'soap_version' => SOAP_1_2,
'exceptions' => true,
'trace' => 1 ,
'cache_wsdl' => WSDL_CACHE_NONE
) ;
$api_id = '######' ;
$api_key = '######################' ;
$api_auth = array ( 'ID' => $api_id , 'KEY' => $api_key ) ; $api_client2 = new SoapClient( 'https://ws.intime.ua/API/ws/API20/?wsdl' , $options ) ;
$catalog = 'Departments' ;
'AuthData' => $api_auth ,
'CatalogNameEng' => $catalog
) ;
$result = $api_client2 -> CatalogList ( array ( 'CatalogListRequest' => $params ) ) ;
echo '<pre>' ;
echo '<pre>' ;
Exponat
Отправлено: 11 Сентября, 2015 - 15:44:32 • Тема: Как обновить данные в таблице БД? • Форум: SQL и Архитектура БД
Ответов: 1 Просмотров: 30
Есть таблица такого вида:
ID NAME STREET HOUSE LIMITWEIGHT
1 Зачепиловка Свердлова 21 30
2 Дымер Ленина 3 30
Каким запросом мне обновить данные в этой таблице? Если данные которые обновляются отсутствуют - то чтоб они добавились. А если в каких то данных поменялось одно значение - то чтоб оно перезаписалось. Это возможно?
Страниц (14): « 1 [2] 3 4 5 6 7 8 9 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB