anneviana 0 Denunciar post Postado Março 25, 2011 Oi pessoal estou no desespero aqui. Ontem eu consegui dps de muito penar fazer um gráfico com a ajuda do Matheus Tavares. o problema é que no meu dominio ele rodou ok. Mas quando coloco no dominio em questão simplesmente retorna um monte de erros como se não lesse minha query. Os erros sao esses: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /public_html/prove.php on line 64 Fatal error: Call to a member function view() on a non-object in /public_html/prove.php on line 40 O primeiro erro eu sei que é nessa linha: while ($x = mysql_fetch_assoc($resultado)) { E o segunda é essa: class phplot { function phplot() { $this->load->view('associados/phplot'); } } E meu código todo : <?php //header('Content-Type: text/html; charset=iso-8859-1'); $titulo = "Relatorio de ganhos semanal"; function phplot() { $this->load->view('associados/phplot'); } function getId() { $data = $this->session->userdata('associados'); return $data['id']; } 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; } $hostname = "localhost"; $database = "teste"; $username = "root"; $password = ""; $conn = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); class phplot { function phplot() { $this->load->view('associados/phplot'); } } ########################### $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 "; mysql_select_db("simquero_pagvisa", $conn); $resultado = mysql_query($sql,$conn); $i = 0; while ($x = mysql_fetch_assoc($resultado)) { $dados[] = array(utf8_decode(diasemana($x['data']).' '.substr($x['data'],0,5)), $x['somaValorDia']); } $graph =& new PHPlot(700,310); $graph->SetDataValues($dados); $graph->SetTitle(utf8_decode($titulo)); $graph->SetXTitle(utf8_decode('Dias da semana')); $graph->SetYTitle(utf8_decode('Soma de quantia diaria (R$)')); $graph->DrawGraph(); ?> Compartilhar este post Link para o post Compartilhar em outros sites
douglaspossas 0 Denunciar post Postado Março 25, 2011 Boa tarde. O primeiro erro, pelo jeito, deve-se ao fato do retorno da sua consulta não estar trazendo nada, ou estar dando erro de execução, e quando você tenta transformar o resultado em um array associativo o php n consegue. Se voce não usa ferramenta de debug alguma, imprima a SQL antes do while e tente rodar em seu servidor de banco de dados para ver o que pode estar acontecendo, ou mande exibir erro caso ocorra. O segundo problema, deve ser algo com o mapeamento do diretorio. Veja qual diretorio esta seu arquivo que esta sendo executado e o associados/phplot, ou ainda pode estar ocorrendo por causa do primeiro. Poste aqui o resultado e tentarei lhe ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 25, 2011 Então bem dizer eu voltei a estaca 0... pq agora esta retornando o q tem no bd veja: www.simquero.com/prove.php Não conseguindo colocar o switch diasemana sem que retorne algum erro. =\ Compartilhar este post Link para o post Compartilhar em outros sites
douglaspossas 0 Denunciar post Postado Março 25, 2011 Então bem dizer eu voltei a estaca 0... pq agora esta retornando o q tem no bd veja: www.simquero.com/prove.php Não conseguindo colocar o switch diasemana sem que retorne algum erro. =\ Da um echo antes do switch no $diadasemana e depois dele para vermos. Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 25, 2011 Consegui arrumar por dia!!!! Mas sem o switch... só que eu precisava que essa query pegasse por isso do associado só que nao sei direito como faz essas coisas e to me batendo aqui , alguma dica? Brigadão!!! Compartilhar este post Link para o post Compartilhar em outros sites
douglaspossas 0 Denunciar post Postado Março 25, 2011 Olha anne, creio que voce tera que verificar no for tambem qual o dia da semana do registro e adicionar em um array com chaves. Ex $array["dom"] = $valor; $array["seg"] = $valor; ... $array["se"] = $valor; Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 25, 2011 Mas eu preciso fazer esse gráfico pra ainda hoje :( E o principal de tudo no momento é aparecer o id do associado... desculpa a demora pra resposta estou tentando de todas as formas aqui... Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Março 25, 2011 Da um echo antes do switch no $diadasemana e depois dele para vermos. Afinal o que aparece no $diadasemana ? Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 25, 2011 dei o echo no $diasemana antes do while...mas não retornou nada... Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Março 25, 2011 Usa var_dump($diasemana); Assim fica mais fácil. Dependendo do que retornar dá pra saber mais ou menos onde mexer Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 25, 2011 retornou NULL Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Março 25, 2011 você precisa ver se a data está vindo do banco corretamente $x['data'](no formato que é pedido na função 'dia/mes/ano'), senão a função diasemana($x['data']) não irá funcionar corretamente Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 25, 2011 Está vindo sim só que é a registrado_em que é uma timestamp e no select esta convertendo para data mas quando eu coloco isso no select DATE_FORMAT(registrado_em, \'%d/%m/%Y\') as data Simplesmente dá pau e nao exibe Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Março 25, 2011 Dei uma olhada em DATE_FORMAT no manual de referência do MySQL DATE_FORMAT('2009-10-04 22:23:00', '%d %m %Y'); Talvez você deva converter o timestamp <?php $timestamp = time(); $date_time = date("Y-m-d G:i:s", $timestamp); echo $date_time; ?> Compartilhar este post Link para o post Compartilhar em outros sites
anneviana 0 Denunciar post Postado Março 25, 2011 vou tentar aqui Kratos Zohr, depois eu volto pra dizer se deu certo Obrigada por estar me ajudando! Compartilhar este post Link para o post Compartilhar em outros sites