Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

anneviana

[Resolvido] Gráfico PHPLOT

Recommended Posts

Oi gente, estou aqui por um problema q estou penando já há dois dias...

 

Estou usando o PHPlot para gerar um gráfico,meus dados veem do mysql,até aqui eu consegui fazer depois de pesquisar muito na net, porém estou com dificuldade em uma coisa:

 

Esse gráfico (em linhas) esta trazendo valores da data atual e dos 6 dias atras (semana), o problema é que ele precisa que a cada 'ponto' desenhado, signifique o total de vendas de cada dia dessa semana.

 

por exemplo no primeiro 'ponto' o total de vendas foi de 30 reais no dia, no segundo ponto o total foi de 50 reais.

 

Alguém saberia como me ajudar ?

 

Já ia esquecendo meu código é esse:

<?php
# PHPlot Example: Linepoints plot with Data Value Labels
include "db.php";
require_once 'phplot.php';


$sql=mysql_query("select * from pedidos WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= registrado_em");

$resultado = mysql_num_rows($sql);

$data = array();
while($testando = mysql_fetch_assoc($sql))
{
$data[] = array($testando['registrado_em'],$testando['valor']);
} 

$plot = new PHPlot(700, 200);
$plot->SetImageBorderType('plain'); // Improves presentation in the manual
$plot->SetPlotType('linepoints');
$plot->SetDataType('text-data');
$plot->SetDataValues($data);
$plot->SetTitle("PagVisa controle de ganhos semanal\n"
             . "(em R$)");
$plot->SetTitulo("PagVisa controle de ganhos semanal\n"
             . "(em R$)");
# Turn on Y data labels:
$plot->SetYDataLabelPos('plotin');

# Turn on X data label lines (drawn from X axis up to data point):
$plot->SetDrawXDataLabelLines(True);

# With Y data labels, we don't need Y ticks, Y tick labels, or grid lines.
$plot->SetYTickLabelPos('none');
$plot->SetYTickPos('none');
$plot->SetDrawYGrid(False);
# X tick marks are meaningless with this data:
$plot->SetXTickPos('none');
$plot->SetXTickLabelPos('none');

$plot->DrawGraph();
?>

 

Valeu gente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele seleciona os dados corretamente,dentro dos 7 dias. Mas esse SUM de valores ele não vai criar uma espécie de média no gráfico?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha tabela no bd esta assim:

 



-- Estrutura da tabela `pedidos`
--

CREATE TABLE IF NOT EXISTS `pedidos` (
 `id` int(11) NOT NULL auto_increment,
 `associadoID` int(11) NOT NULL,
 `clienteID` int(11) NOT NULL,
 `cobranca` enum('produto','assinatura') NOT NULL,
 `valor` float(6,2) NOT NULL,
 `repasse` float(6,2) NOT NULL,
 `frete` float(6,2) default NULL,
 `planoID` int(11) default NULL,
 `vencimento` date default NULL,
 `periodo` varchar(5) default NULL,
 `moeda` enum('real','dolar') default NULL,
 `descricao` varchar(255) default NULL,
 `forma_pagamento` enum('deposito','cartao','boleto') NOT NULL,
 `cartao_tipo` varchar(20) default NULL,
 `cartao_nome` varchar(120) default NULL,
 `cartao_numero` varchar(18) default NULL,
 `validade_mes` varchar(2) default NULL,
 `validade_ano` varchar(4) default NULL,
 `cartao_cvv` varchar(4) default NULL,
 `conta_banco_id` int(11) default NULL,
 `renovacao` tinyint(1) NOT NULL default '0',
 `situacao` enum('aprovado','reprovado','pendente','aguardando_estorno','estornado','repassado','cancelado') NOT NULL default 'pendente',
 `tp_transacao` enum('compra','renovacao') NOT NULL default 'compra',
 `taxa_boleto` enum('cliente','associado') default NULL,
 `valor_taxa` float(6,2) NOT NULL,
 `compra_id` int(11) default NULL,
 `ip` varchar(16) NOT NULL,
 `informado_status` varchar(25) default NULL,
 `data_liberacao` date default NULL,
 `pagamento_liberado` int(1) default '0',
 `registrado_em` timestamp NOT NULL default CURRENT_TIMESTAMP,
 `data` date NOT NULL,
 PRIMARY KEY  (`id`),
 KEY `associadoID` (`associadoID`),
 KEY `clienteID` (`clienteID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=517 ;

--
-- Extraindo dados da tabela `pedidos`
--

INSERT INTO `pedidos` (`id`, `associadoID`, `clienteID`, `cobranca`, `valor`, `repasse`, `frete`, `planoID`, `vencimento`, `periodo`, `moeda`, `descricao`, `forma_pagamento`, `cartao_tipo`, `cartao_nome`, `cartao_numero`, `validade_mes`, `validade_ano`, `cartao_cvv`, `conta_banco_id`, `renovacao`, `situacao`, `tp_transacao`, `taxa_boleto`, `valor_taxa`, `compra_id`, `ip`, `informado_status`, `data_liberacao`, `pagamento_liberado`, `registrado_em`, `data`) VALUES
(15, 5, 5, 'assinatura', 29.90, 26.91, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '189.82.135.242', NULL, NULL, 0, '2011-03-24 18:22:38', '2011-03-24'),
(16, 5, 6, 'assinatura', 39.90, 35.91, 0.00, 4, '2011-06-14', '90', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '187.25.137.152', NULL, NULL, 0, '2011-03-19 18:31:21', '0000-00-00'),
(17, 5, 7, 'assinatura', 39.90, 35.91, 0.00, 4, '2011-06-14', '90', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'aprovado', 'compra', 'cliente', 2.50, NULL, '189.30.68.31', 'aprovado', '2011-03-18', 0, '2011-03-23 19:16:19', '0000-00-00'),
(18, 5, 8, 'assinatura', 39.90, 35.91, 0.00, 4, '2011-06-14', '90', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '201.58.250.237', NULL, NULL, 0, '2011-03-18 19:29:50', '0000-00-00'),
(19, 5, 9, 'assinatura', 49.90, 44.91, 0.00, 5, '2011-08-13', '150', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '189.28.0.190', NULL, NULL, 0, '2011-03-16 19:33:47', '0000-00-00'),
(20, 5, 10, 'assinatura', 39.90, 35.91, 0.00, 4, '2011-06-14', '90', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '201.1.208.27', NULL, NULL, 0, '2011-03-16 19:55:49', '0000-00-00'),
(21, 5, 11, 'assinatura', 29.90, 29.90, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '189.41.255.189', NULL, NULL, 0, '2011-03-16 20:51:44', '0000-00-00'),
(22, 5, 12, 'assinatura', 29.90, 29.90, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '201.53.203.242', NULL, NULL, 0, '2011-03-16 21:01:28', '0000-00-00'),
(23, 5, 13, 'assinatura', 29.90, 29.90, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '200.178.158.2', NULL, NULL, 0, '2011-03-16 21:13:32', '0000-00-00'),
(24, 5, 14, 'assinatura', 39.90, 39.90, 0.00, 4, '2011-06-14', '90', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '200.181.93.116', NULL, NULL, 0, '2011-03-16 21:44:08', '0000-00-00'),
(25, 5, 15, 'assinatura', 39.90, 39.90, 0.00, 4, '2011-06-14', '90', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '187.62.127.242', NULL, NULL, 0, '2011-03-16 22:25:03', '0000-00-00'),
(26, 5, 16, 'assinatura', 29.90, 29.90, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '189.66.143.175', NULL, NULL, 0, '2011-03-16 22:28:19', '0000-00-00'),
(27, 5, 17, 'assinatura', 29.90, 29.90, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '187.10.34.14', NULL, NULL, 0, '2011-03-16 22:41:07', '0000-00-00'),
(13, 5, 4, 'assinatura', 29.90, 26.91, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'reprovado', 'compra', 'cliente', 2.50, NULL, '186.206.14.198', 'reprovado', '0000-00-00', 0, '2011-03-16 18:02:46', '0000-00-00'),
(14, 5, 4, 'assinatura', 29.90, 26.91, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '186.206.14.198', NULL, NULL, 0, '2011-03-16 18:04:48', '0000-00-00'),
(12, 5, 2, 'assinatura', 29.90, 26.91, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '186.206.14.198', NULL, NULL, 0, '2011-03-16 17:52:03', '0000-00-00'),
(11, 5, 2, 'assinatura', 39.90, 35.91, 0.00, 4, '2011-06-14', '90', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'aprovado', 'compra', 'cliente', 2.50, NULL, '186.206.14.198', 'aprovado', '2011-03-23', 0, '2011-03-16 15:58:24', '0000-00-00'),
(10, 5, 2, 'assinatura', 29.90, 26.91, 0.00, 3, '2011-04-15', '30', 'real', '', 'deposito', '', '', '', '', '', '', 1, 1, 'pendente', 'compra', 'cliente', 0.00, NULL, '186.206.14.198', NULL, NULL, 0, '2011-03-16 15:32:33', '0000-00-00'),
(9, 5, 3, 'assinatura', 39.90, 35.91, 0.00, 4, '2011-06-14', '90', 'real', '', 'deposito', '', '', '', '', '', '', 1, 1, 'pendente', 'compra', 'cliente', 0.00, NULL, '186.206.14.198', NULL, NULL, 0, '2011-03-16 15:16:43', '0000-00-00'),
(7, 5, 3, 'assinatura', 39.90, 35.91, 0.00, 4, '2011-06-14', '90', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '186.206.14.198', NULL, NULL, 0, '2011-03-16 14:33:48', '0000-00-00'),
(8, 5, 2, 'assinatura', 29.90, 26.91, 0.00, 3, '2011-04-15', '30', 'real', '', 'deposito', '', '', '', '', '', '', 1, 1, 'pendente', 'compra', 'cliente', 0.00, NULL, '186.206.14.198', NULL, NULL, 0, '2011-03-16 15:03:59', '0000-00-00'),
(6, 5, 2, 'assinatura', 29.90, 26.91, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '186.206.14.198', NULL, NULL, 0, '2011-03-16 14:26:30', '0000-00-00'),
(5, 5, 2, 'assinatura', 39.90, 35.91, 0.00, 4, '2011-06-14', '90', 'real', '', 'deposito', '', '', '', '', '', '', 1, 1, 'pendente', 'compra', 'cliente', 0.00, NULL, '186.206.14.198', NULL, NULL, 0, '2011-03-16 14:14:43', '0000-00-00'),
(4, 5, 3, 'assinatura', 29.90, 26.91, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'reprovado', 'compra', 'cliente', 2.50, NULL, '186.206.14.198', 'reprovado', '0000-00-00', 0, '2011-03-16 13:53:22', '0000-00-00'),
(3, 5, 2, 'assinatura', 29.90, 26.91, 0.00, 3, '2011-04-15', '30', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'pendente', 'compra', 'cliente', 2.50, NULL, '186.206.14.198', NULL, NULL, 0, '2011-03-16 13:16:21', '0000-00-00'),
(2, 5, 2, 'assinatura', 39.90, 35.91, 0.00, 4, '2011-06-14', '90', 'real', '', 'boleto', '', '', '', '', '', '', 0, 1, 'reprovado', 'compra', 'cliente', 2.50, NULL, '186.206.14.198', 'aprovado', '0000-00-00', 0, '2011-03-16 12:53:02', '0000-00-00');

 

O que eu preciso fazer é exatamente isso:

 

http://zilaviana.com.br/uol.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou tentando colocar o SUM mas não estou conseguindo =\

preciso colocar ele dentro do while (pelo menos acho que seja isso).

Só que além de estar somando os valores precisa ser os valores do dia...

tentei assim,mas acho que to fazendo errado... :(

 

$data = array();
while($testando = mysql_fetch_assoc($sql))
{
$data[] = array($testando['registrado_em=SUM(valor)'],$testando['registrado_em=SUM(valor)']);


} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde Anne,

 

Se entendi correto o Matheus Tavares, ele pediu para que voce coloca-se o SUM na sua query e não no seu condigo php.

 

Matheus Tavares, me corrija se eu estiver errado.

 

 

Att.

Patric Castelli

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Anne,

 

Porque não??

 

 

Quais os campos da sua tabela voce quer mostrar no grafico??

 

Quero mostrar o campo valor,porém ele precisa estar junto com a data, tipo pegando todos os valores do dia e colocando num ponto do grafico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Matheus, é Anne meu nome sim.

 

Obrigada por estar me auxiliando :D

estou ficando louca já com esse problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria isso?

:seta: http://matheustavares.com.br/lot/x.php

 

Os valores estão diferentes, pois alterei para exemplificar melhor, mas estão corretos. Apenas não tentei colocar o R$ antes, mas isso resolve-se com uma legenda. Na documentação do PHPLOT há explicações sobre isso.

 

EDIT: Bom, como não houve um feedback, vou postar a solução do link acima.

 

<?php
header('Content-Type: text/html; charset=utf-8');

function diasemana($data) {
list($dia,$mes,$ano) = explode('/', $data);
$diasemana = date("w", mktime(0,0,0,$mes,$dia,$ano) );

switch($diasemana) {
	case 0: $diasemana = 'Dom'; break;
	case 1: $diasemana = 'Seg'; break;
	case 2: $diasemana = 'Ter'; break;
	case 3: $diasemana = 'Qua'; break;
	case 4: $diasemana = 'Qui'; break;
	case 5: $diasemana = 'Sex'; break;
	case 6: $diasemana = 'Sáb'; break;
}
return $diasemana;
}
$bdx = array (
'serve' => 'localhost',
'banco' => '',
'login' => '',
'senha' => ''
);
$bd = mysqli_connect ($bdx['serve'], $bdx['login'], $bdx['senha'], $bdx['banco']);
require_once 'phplot.php';

###########################

$sql = '
SELECT
	SUM(`valor`) as `somaValorDia`,
	DATE_FORMAT(`registrado_em`, \'%d/%m/%Y\') as `data`
FROM
	`pedidos`
WHERE
	DATE_SUB(CURDATE(),INTERVAL 6 DAY) <= `registrado_em`
GROUP BY
	DAY(`registrado_em`)
ORDER BY
	`registrado_em` ASC
';
$res = mysqli_query($bd, $sql);
$i = 0;
while ($x = mysqli_fetch_assoc($res)) {
$dados[] = array(utf8_decode(diasemana($x['data']).' '.substr($x['data'],0,5)), $x['somaValorDia']);
}

$graph =& new PHPlot(600,350);
$graph->SetDataValues($dados);
$graph->SetXTitle(utf8_decode('Dias da semana'));
$graph->SetYTitle(utf8_decode('Soma de quantia diária (R$)'));
$graph->DrawGraph();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Matheus, vou testar a solução que você me passou, desculpe a demora de resposta é que moro um pouco longe do meu trabalho rss

 

Nossa muito obrigada Matheus era isso mesmo que eu precisava!!!

 

Salvou minha pele!!! brigadão!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.