Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

184
Visualizações
Ventas diarias resumidas de los últimos 30 días en el gráfico de Google

Tengo una mesa con ventas. De esta tabla, tomo todos los resultados de los últimos 30 días, sumo los precios con la misma fecha y obtengo esto como una matriz.

SQL:

 SELECT date , price , id , SUM(price) AS daylieprice FROM sales WHERE id = :id AND date BETWEEN DATE_FORMAT(CURDATE() , '%Y-%m-%d') - interval 1 month AND DATE_FORMAT(CURDATE() , '%Y-%m-%d')) GROUP BY date


Así que tengo por ejemplo:
ARRAY ['fecha'] - ARRAY ['precio del día']
"2017-03-29" - "1"
"2017-04-02" - "5"
"2017-04-04" - "3"


El gráfico de Google se ve así:

 ['<? echo date('d', strtotime("-2 day")) ?>', VALUE] ['<? echo date('d', strtotime("-1 day")) ?>', VALUE] ['<? echo date('d') ?> ', VALUE]

¿Hay alguna manera de generar el valor de la matriz de esa manera?

 date('d', strtotime("-2 day") , ARRAY ['daylieprice']); date('d', strtotime("-1 day") , ARRAY ['daylieprice']); date('d', ARRAY ['daylieprice']);

¿Debería significar tomar el valor de la matriz fácilmente con date('d') o date('d', strtotime("-1 day") sin hacer un bucle para cada valor?

¿O tengo que hacer una solicitud de SQL para todos los días?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Se me ocurrió esto. Uso DateTime para dar más control y flexibilidad con los formatos de entrada y salida. Esto recorre su matriz de entrada y resta 2 días de la primera entrada, 1 día de la segunda entrada y mantiene la tercera entrada igual:

 <?php $input = [ [ 'date' => '2017-03-29', 'daylieprice' => 1, ], [ 'date' => '2017-04-02', 'daylieprice' => 5, ], [ 'date' => '2017-04-04', 'daylieprice' => 3, ], ]; $output = []; $number_of_dates = count($input) - 1; foreach ($input as $v) { $date = DateTime::createFromFormat('Ym-d', $v['date']) ->modify(sprintf('-%d days', $number_of_dates)) ->format('Ym-d'); $number_of_dates--; $output[] = "'" . $date . "', " . $v['daylieprice']; }

Esto produce una matriz como:

 Array ( [0] => '2017-03-27', 1 [1] => '2017-04-01', 5 [2] => '2017-04-04', 3 )

Espero que esto ayude y puedas descubrir exactamente cómo implementarlo para resolver tu problema.

Editar: acabo de ver echo date('d' así que tal vez solo desee el día del mes, eso es fácil, puede cambiar ->format('Ym-d'); en el ciclo a ->format('d');

Demostración: https://eval.in/784353

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda