Выборка JSON в цикле.

1 234
seosniks
На сайте с 13.08.2007
Offline
389
#21
LEOnidUKG:
Зачем он там?! Он там не нужен.

А как можно обработать десяток монет?

bums
На сайте с 03.07.2006
Offline
442
#22

$row = '<table>';

foreach($balanc as $k=>$v) {
$row .= '
<tr>
<td>'.ceil($v['buy_price']).'</td>
<td>'.ceil($v['sell_price']).'</td>
<td>'.ceil($v['last_trade']).'</td>
<td>'.ceil($v['high']).'</td>
<td class="'.$time_color.'">'.ceil($v['low']).'</td>
<td>'.ceil($v['avg']).'</td>
<td>'.ceil($v['vol']).'</td>
<td>'.ceil($v['vol_curr']).'</td>
<td>'.date('d-m-Y H:i:s', $v['updated']).'</td>
</tr>';
}
$row .= '</table>';
print $row;

не?

Недорогая регистрация и продление доменов RU/SU/РФ/COM/NET/ORG/и т.д. ( https://www.regnic.name/?sesign ) в РЕГРУ, РЕГТАЙМ, Р01, РУЦЕНТР. А так же хостинг и SSL сертификаты.
seosniks
На сайте с 13.08.2007
Offline
389
#23
Sitealert:
echo '<table>';
foreach($rows as $row){
echo '<tr>';
foreach($cols as $col){
echo '<td>'.$balanc[$col][$row].'</td>';
}
echo '</tr>';
}
echo '</table>';

Вот весь скрипт только API ключи добавить. Работает на 1 пару.

<!doctype html>
<html lang="ru"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<link href="./styles.css" rel="stylesheet">
<table>

<tr>
<th width="250"> &nbsp;</th> <th> Биржа EXMO</th>
</tr>

</table>





<table class="nums">

<thead>
<tr> <th>coin</th>
<th>buy max</th>
<th>buy min</th>
<th>end sdelka</th>
<th>mah 24h</th>
<th>min 24h</th>


<th width="80">vol 24h</td>
<th>tot sdel 24 h</th>
<th> update </th>


</tr>
</thead>


<tbody>



<?php

function api_query($api_name, array $req = array())
{
$mt = explode(' ', microtime());
$NONCE = $mt[1] . substr($mt[0], 2, 6);

// API Ключи
$key = 'K-000000000';
$secret = 'S-00000000000';

$url = "http://api.exmo.com/v1/$api_name";

$req['nonce'] = $NONCE;

// generate the POST data string
$post_data = http_build_query($req, '', '&');

$sign = hash_hmac('sha512', $post_data, $secret);

// generate the extra headers
$headers = array(
'Sign: ' . $sign,
'Key: ' . $key,
);

// our curl handle (initialize if required)
static $ch = null;
if (is_null($ch)) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; PHP client; ' . php_uname('s') . '; PHP/' . phpversion() . ')');
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

$res = curl_exec($ch);
$value = json_decode($res, true);

$monets= 'ZEC_RUB';

for ( $i=0; $i<1; $i++)

{




$buy_price= ceil($value["$monets"]["buy_price"]) ;//текущая максимальная цена покупки
$sell_price= ceil( $value["$monets"]["sell_price"]) ;//текущая минимальная цена продажи
$last_trade= ceil($value["$monets"]["last_trade"]) ;// цена последней сделки
$max_price= ceil($value["$monets"]["high"] ) ;// максимальная цена сделки за 24 час
$min_price= ceil($value["$monets"]["low"] ) ;// - минимальная цена сделки за 24 часа
$sredn_price= ceil($value["$monets"]["avg"] ) ;// средняя цена сделки за 24 часа
$obiem= ceil($value["$monets"]["vol"] ) ;//объем всех сделок за 24 часа
$all_sdelka= ceil($value["$monets"]["vol_curr"]) ;// сумма всех сделок за 24 часа
$updated= $value["$monets"]["updated"] ;// дата и время обновления данных








$date_upd = date('d-m-Y H:i:s', $updated) ;





echo $out =<<<EOFF
<tr>

<td> $monets </td>

<td> $buy_price</td>
<td> $sell_price</td>
<td> $last_trade</td>
<td> $max_price</td>
<td class="$time_color"> $min_price</td>
<td> $obiem</td>
<td> $all_sdelka</td>
<td> $date_upd </td>
</tr>


EOFF;


}




}


$result =api_query('ticker');
?>


</tbody>
</table>
</html>
seosniks
На сайте с 13.08.2007
Offline
389
#24

Выглядит так.

png 555555555555555555.png
bums
На сайте с 03.07.2006
Offline
442
#25

за остальной код не отвечу, а в части вывода таблицы как то так

<!doctype html>
<html lang="ru"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<link href="./styles.css" rel="stylesheet">
<table>

<tr>
<th width="250"> &nbsp;</th> <th> Биржа EXMO</th>
</tr>

</table>





<table class="nums">

<thead>
<tr> <th>coin</th>
<th>buy max</th>
<th>buy min</th>
<th>end sdelka</th>
<th>mah 24h</th>
<th>min 24h</th>


<th width="80">vol 24h</td>
<th>tot sdel 24 h</th>
<th> update </th>


</tr>
</thead>


<tbody>



<?php

function api_query($api_name, array $req = array())
{
$mt = explode(' ', microtime());
$NONCE = $mt[1] . substr($mt[0], 2, 6);

// API Ключи
$key = 'K-000000000';
$secret = 'S-00000000000';

$url = "http://api.exmo.com/v1/$api_name";

$req['nonce'] = $NONCE;

// generate the POST data string
$post_data = http_build_query($req, '', '&');

$sign = hash_hmac('sha512', $post_data, $secret);

// generate the extra headers
$headers = array(
'Sign: ' . $sign,
'Key: ' . $key,
);

// our curl handle (initialize if required)
static $ch = null;
if (is_null($ch)) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; PHP client; ' . php_uname('s') . '; PHP/' . phpversion() . ')');
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

$res = curl_exec($ch);
$value = json_decode($res, true);

$row = '';
foreach($value as $k=>$v) {
$row .= '
<tr>
<td>'.$k.'</td>
<td>'.ceil($v['buy_price']).'</td>
<td>'.ceil($v['sell_price']).'</td>
<td>'.ceil($v['last_trade']).'</td>
<td>'.ceil($v['high']).'</td>
<td class="'.$time_color.'">'.ceil($v['low']).'</td>
<td>'.ceil($v['avg']).'</td>
<td>'.ceil($v['vol']).'</td>
<td>'.date('d-m-Y H:i:s', $v['updated']).'</td>
</tr>';
}

}

print $row;
$result =api_query('ticker');
?>


</tbody>
</table>
</html>
seosniks
На сайте с 13.08.2007
Offline
389
#26
bums:
за остальной код не отвечу, а в части вывода таблицы как то так


$res = curl_exec($ch);
$value = json_decode($res, true);

$row = '';
foreach($value as $k=>$v) {
$row .= '
<tr>
<td>'.$k.'</td>
<td>'.ceil($v['buy_price']).'</td>
<td>'.ceil($v['sell_price']).'</td>
<td>'.ceil($v['last_trade']).'</td>
<td>'.ceil($v['high']).'</td>
<td class="'.$time_color.'">'.ceil($v['low']).'</td>
<td>'.ceil($v['avg']).'</td>
<td>'.ceil($v['vol']).'</td>
<td>'.date('d-m-Y H:i:s', $v['updated']).'</td>
</tr>';
}

}

print $row;
$result =api_query('ticker');
?>


</tbody>
</table>
</html>

Ваш пример просто компактнее.

В общем слепил скрипт.

Теперь прописываются монеты и выводит по указанным монетам.

<!doctype html>

<html lang="ru"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<link href="./styles.css" rel="stylesheet">
<table>

<tr>



<th width="250"> &nbsp;</th> <th> Биржа EXMO</th>
</tr>

</table>





<table class="nums">

<thead>
<tr> <th>coin</th>
<th>buy max</th>
<th>buy min</th>
<th>end sdelka</th>
<th>mah 24h</th>
<th>min 24h</th>


<th width="80">vol 24h</td>
<th>tot sdel 24 h</th>
<th> update </th>


</tr>
</thead>


<tbody>



<?php
# Разработака не сложных скриптов под заказ icq 317418 пишите через сайт https://vk.com/bitcoindash


function api_query($api_name, array $req = array())
{
$mt = explode(' ', microtime());
$NONCE = $mt[1] . substr($mt[0], 2, 6);

// API settings
$key = 'K-00000000';
$secret = 'S-00000000';

$url = "http://api.exmo.com/v1/$api_name";

$req['nonce'] = $NONCE;

// generate the POST data string
$post_data = http_build_query($req, '', '&');

$sign = hash_hmac('sha512', $post_data, $secret);

// generate the extra headers
$headers = array(
'Sign: ' . $sign,
'Key: ' . $key,
);

// our curl handle (initialize if required)
static $ch = null;
if (is_null($ch)) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; PHP client; ' . php_uname('s') . '; PHP/' . phpversion() . ')');
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

// run the query
$res = curl_exec($ch);
$value = json_decode($res, true); // преобразование строки в формате json в ассив
// var_dump( $dat2 );
// print_r( $balanc["BTC_USD"] );




// echo $balanc['BTC_RUB']['buy_price'];

$array= array('ZEC_RUB','XRP_RUB');

$all=sizeof($array);


// $out= $balanc["BTC_USD"] ;
for ( $a=0; $a< $all; $a++)

{

$monets = $array[$a];





for ( $i=0; $i<1; $i++)

{




$buy_price= ceil($value["$monets"]["buy_price"]) ;//текущая максимальная цена покупки
$sell_price= ceil( $value["$monets"]["sell_price"]) ;//текущая минимальная цена продажи
$last_trade= ceil($value["$monets"]["last_trade"]) ;// цена последней сделки
$max_price= ceil($value["$monets"]["high"] ) ;// максимальная цена сделки за 24 час
$min_price= ceil($value["$monets"]["low"] ) ;// - минимальная цена сделки за 24 часа
$sredn_price= ceil($value["$monets"]["avg"] ) ;// средняя цена сделки за 24 часа
$obiem= ceil($value["$monets"]["vol"] ) ;//объем всех сделок за 24 часа
$all_sdelka= ceil($value["$monets"]["vol_curr"]) ;// сумма всех сделок за 24 часа
$updated= $value["$monets"]["updated"] ;// дата и время обновления данных








$date_upd = date('d-m-Y H:i:s', $updated) ;





echo $out =<<<EOFF
<tr>

<td> $monets </td>

<td> $buy_price</td>
<td> $sell_price</td>
<td> $last_trade</td>
<td> $max_price</td>
<td class="$time_color"> $min_price</td>
<td> $obiem</td>
<td> $all_sdelka</td>
<td> $date_upd </td>
</tr>


EOFF;


}

}


}


$result =api_query('ticker');
?>


</tbody>
</table>
</html>
LEOnidUKG
На сайте с 25.11.2006
Offline
1726
#27
for ( $i=0; $i<1; $i++)

{

Убейте меня.....

---------- Добавлено 10.03.2018 в 14:23 ----------

Ваш пример просто компактнее.

Он не компактнее. Он АДЕКВАТЕН, относительного вашего кода в котором вообще нет понимания, что такое циклы, что такое массивы и т.д.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
bums
На сайте с 03.07.2006
Offline
442
#28
seosniks:
В общем слепил скрипт.

ну хоть результат получил :)

seosniks
На сайте с 13.08.2007
Offline
389
#29
LEOnidUKG:
Убейте меня.....

---------- Добавлено 10.03.2018 в 14:23 ----------



Он не компактнее. Он АДЕКВАТЕН, относительного вашего кода в котором вообще нет понимания, что такое циклы, что такое массивы и т.д.

А что не так в цикле? цифра 1?

На счет понимания , таблицу я сделал так как проще было.

Вот код выводит все монеты что имеются в JSON

Можно ли получить одну пару?

$balanc = json_decode($res, true); // преобразование строки в формате json в  ассив

// var_dump( $dat2 );
// print_r( $balanc );
foreach($balanc as $key => $value)
{

$buy_price= ceil($value["buy_price"]) ;//текущая максимальная цена покупки
$sell_price= ceil( $value["sell_price"]) ;//текущая минимальная цена продажи
$last_trade= ceil($value["last_trade"]) ;// цена последней сделки
$max_price= ceil($value["high"] ) ;// максимальная цена сделки за 24 час
$min_price= ceil($value["low"] ) ;// - минимальная цена сделки за 24 часа
$sredn_price= ceil($value["avg"] ) ;// средняя цена сделки за 24 часа
$obiem= ceil($value["vol"] ) ;//объем всех сделок за 24 часа
$all_sdelka= ceil($value["vol_curr"]) ;// сумма всех сделок за 24 часа
$updated= $value["updated"] ;// дата и время обновления данных



$date_upd = date('d-m-Y H:i:s', $updated) ;
echo $out =<<<EOFF
<tr> <td> $key </td>

<td> $buy_price</td>
<td> $sell_price</td>
<td> $last_trade</td>
<td> $max_price</td>
<td> $min_price</td>
<td> $obiem</td>
<td> $all_sdelka</td>
<td> $date_upd </td>
</tr>


EOFF;




}



---------- Добавлено 10.03.2018 в 14:33 ----------

bums:
ну хоть результат получил :)

Да хотелось понять принцип, а результат это так важно.

png 555555555555555555.png
LEOnidUKG
На сайте с 25.11.2006
Offline
1726
#30
Можно ли получить одну пару?

Можно:

/ru/forum/comment/15513663

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий