• Как вывести данные из JSON в HTML?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    Я получаю json. А вывести мне его надо в цикле на странице со сложной html структурой. Т.е. только шаблонизатор? )
    Во первых, судя по тому что используется jq, никаких "шаблонизаторов"/движков у вас не подключено (не факт, но скорее всего).
    Во вторых - если вы его в цикле прогоняете для построения разметки - ну, по сути вы и так справляетесь с работой шаблонизатора. В общем случае все определяется сложностью и востребованностью. Если это у вас в 1-2 местах и проще самому набросать как там хтмл должен выглядеть, то не нужен там шаблонизатор, можно ручками. А если половина логики запрашивается аяксом, проще уже какой-то вуй подключить.
    Ответ написан
    Комментировать
  • Как вывести данные из JSON в HTML?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Какие вы можете подсказать актуальные?

    Гуглишь пять штук, смотришь когда последний раз коммитили в гитхаб, выбираешь актуальный.
    От себя рекомендую ejs или pug. Ejs не знаю, а pug можно в рантайме использовать на клиенте. По-моему это ваш вариант.
    Ответ написан
    Комментировать
  • Как обновлять большое кол-во xml файлов?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    выкинуть все 100500 файлов к rm -rf, сделать 1 похапе скрипт который будет генерить нужный XML по запросу
    Ответ написан
    3 комментария
  • Как объединить запрос в MySQL?

    @galaxy
    Во-первых, тут проблемы со скобками:
    DATE_FORMAT(CURRENT_DATE - INTERVAL 11 MONTH, '%Y-%m-01' AND `category_id` = '1')

    А тут многовато AND, на мой вкус:
    AND `category_id` = '2' AND `category_id` = '3'


    По поводу объединения:
    SELECT
    SUM(`price`) as `sales`,
    SUM(`seller_salary`) as `salary`,
    COUNT(CASE WHEN `category_id` = '1' THEN 1 END) as cat1_count,
    COUNT(CASE WHEN `category_id` = '2' OR `category_id` = '3'  THEN 1 END) as cat23_count,
    DATE_FORMAT(`putdate`, '%Y-%m') as period
    FROM `ms_sales`
    WHERE `putdate` >= DATE_FORMAT(CURRENT_DATE - INTERVAL 11 MONTH, '%Y-%m-01')
    GROUP BY period


    С mysql имел дело давно, не знаю, работает ли там CASE как положено.
    Ответ написан
    2 комментария
  • Как объединить три массива?

    @kacheleff
    fullstack developer
    Ответ написан
    Комментировать
  • Как объединить три массива?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Как вариант, еще один:

    /**
     * Prepare array for our job
     */
    $arrayOne = [
    	0 => 80,
    	1 => 80,
    	2 => 90,
    ];
    
    $arrayTwo = [
    	0 => [
    		0 => 190,
    		1 => 195,
    	],
    	1 => [
    		0 => 200,
    	],
    	2 => [
    		0 => 190,
    		1 => 195,
    	],
    ];
    
    $arrayThree = [
    	0 => 1,
    	1 => 2,
    	2 => 3,
    ];
    
    /**
     * @var array Array with actual data in our structure
     */
    $arResult = [];
    
    foreach ( $arrayTwo as $iKeyOne => $arrayTwoElement )
    {
    	// if in second array exist unknown key
    	if ( !array_key_exists($iKeyOne, $arrayOne) )
    	{
    		continue;
    	}
    
    	// if in third array exist unknown key
    	if ( !array_key_exists($iKeyOne, $arrayThree) )
    	{
    		continue;
    	}
    
    	// if in second array no elements
    	if ( empty($arrayTwoElement) || !is_array($arrayTwoElement) )
    	{
    		continue;
    	}
    
    	/* @var integer Key for first depth level  */
    	$iLevelKey = (int) $arrayOne[ $iKeyOne ];
    
    	/* @var integer Value for second depth level */
    	$iLevelValue = (int) $arrayThree[ $iKeyOne ];
    
    	foreach ($arrayTwoElement as $k => $v)
    	{
    		$arResult[ $iLevelKey ][ $v ] = $iLevelValue;
    	}
    }
    
    var_dump($arResult);
    /*
    Will display:
    array(2) {
      [80]=>
      array(3) {
        [190]=> int(1)
        [195]=> int(1)
        [200]=> int(2)
      }
      [90]=>
      array(2) {
        [190]=> int(3)
        [195]=> int(3)
      }
    }
    */
    Ответ написан
    Комментировать