anneviana 0 Denunciar post Postado Março 24, 2011 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
Matheus Tavares 167 Denunciar post Postado Março 24, 2011 Baixei o phplot para testar, e notei o seguinte exemplo: http://matheustavares.com.br/lot/contrib/color_range.example.php É isso que você precisa? Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 24, 2011 Obrigada por responder Matheus. Não necessariamente isso... Eu já tenho esse gráfico: http://zilaviana.com.br/testar.php Mas vea que nesse gráfico que eu tenho ele tem pontos e eu precisava que tivesse 7 pontos desse cada um indicando um dia da semana entende? Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Março 24, 2011 O problema está em selecionar os dados do BD? Acho que o ideal seria utilizar um SUM de valores, depois agrupá-los por dias e limitá-los a 7, no mysql. Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 24, 2011 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
Matheus Tavares 167 Denunciar post Postado Março 24, 2011 Não. Média é com AVG (ou Average). Sum realiza somente a soma. http://www.tizag.com/mysqlTutorial/mysqlsum.php Se quiser, exporte seu Mysql e poste aqui. Facilita para entendermos a situação como um todo. Até mais. Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 24, 2011 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
anneviana 0 Denunciar post Postado Março 24, 2011 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
patriclrv07 0 Denunciar post Postado Março 24, 2011 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
anneviana 0 Denunciar post Postado Março 24, 2011 Oi patriclrv07, o problema é que se eu colocar o SUM na query o gráfico não é mostrado. Compartilhar este post Link para o post Compartilhar em outros sites
patriclrv07 0 Denunciar post Postado Março 24, 2011 Oi Anne, Porque não?? Quais os campos da sua tabela voce quer mostrar no grafico?? Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 24, 2011 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
Matheus Tavares 167 Denunciar post Postado Março 24, 2011 Oi Anne (é esse seu nome?) Não continuei te auxiliando pois tive que dar uma saída, mas estou de volta. Mais tarde postarei um exemplo que estou trabalhando aqui para você. :bye: Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 24, 2011 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
Matheus Tavares 167 Denunciar post Postado Março 24, 2011 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
anneviana 0 Denunciar post Postado Março 25, 2011 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
Matheus Tavares 167 Denunciar post Postado Março 25, 2011 Fico feliz que tenhamos solucionado isso. Precisando, estamos aí. :thumbsup: Abraço! Compartilhar este post Link para o post Compartilhar em outros sites