Ir para conteúdo

POWERED BY:

Arquivado

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

anneviana

mysql_fetch_assoc

Recommended Posts

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

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

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

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

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

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

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

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

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

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

×

Informação importante

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