Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal ,
estou gerando um gráfico com a classe PHPLOT PHP + BD , o que ta pegando é o seguinte, preciso gerar um ARRAY dinâmico trazendo o resultado da minha Query. por exemplo :
Esses dados : Psicologia Jurídica,Técnicas do Exame,Atuação Profissional eles não podem está setado tem que ta vindo de query , ai fiz o seguinte código:
$SQL_LEG = mssql_query("SELECT DISTINCT NOME_DISC
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '9001135'");
$ln = mssql_num_rows($SQL_LEG);
$dataL = array();
for($cont=0; $cont < $ln; $cont++){
$dataL[] = mssql_fetch_row($SQL_LEG);
}
Estático: $plot->SetLegend(array('Psicologia Jurídica','Técnicas do Exame','Atuação Profissional'));
Dinâmico(Não Funciona): $plot->SetLegend(array($dataL));
OBS: Alguem poderia me AJUDAR ? Valeu Pessoal !
Amigão Valeu pela força
eu conseguir listar as Disciplinas com o foreach mas o que ta pegando é GERAR O GRÁFICO, não estou conseguindo montar o Array certo!
Mostrar o código vÊ se você consegue entender. segue abaixo:
<?php
require_once 'phplot.php';
include_once("../classes/Conexao.php");
$conexao = new ConexaoMssql("localhost","teste","teste","bd");
$Codigo = "9000851";
$sqlQuestao = mssql_query(" SELECT distinct questao
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '".$Codigo."'
order by questao ");
$data = array();
$Array = array();
while($DadosQuestao = mssql_fetch_array($sqlQuestao)){
$sqlDisci = " SELECT DISTINCT DISCIPLINA
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '".$Codigo."' ";
$rsDisc = mssql_query($sqlDisci);
while($DadodDisc = mssql_fetch_array($rsDisc)){
$sqlQuestao2 = " SELECT Media
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '".$Codigo."'
AND QUESTAO = '".$DadosQuestao[0]."'
AND DISCIPLINA = '".$DadodDisc[0]."' " ;
$rsQuestao = mssql_query($sqlQuestao2);
$ArrayMedia = mssql_fetch_array($rsQuestao);
#Problema está aqui !
$Array[0] = $DadosQuestao[0];
$Array[1] = $ArrayMedia[0];
$data[] = array($Array[0],$Array[1]);
#echo "<pre>";
#print_r($ArrayMedia);
#print_r($data);
}
}
#Instancia o objeto e setando o tamanho do grafico na tela
$plot = new PHPlot(800,600);
#Tipo de borda, consulte a documentacao
$plot->SetImageBorderType('PLAIN');
#Tipo de grafico, nesse caso barras, existem diversos(pizza…)
//bars, stackedbars, lines, linepoints, area, points, pie, thinbarline, squared, stackedarea',
$plot->SetPlotType('LINES');
#Tipo de dados, nesse caso texto que esta no array
$plot->SetDataType('text-data');
#Setando os valores com os dados do array
$plot->SetDataValues($data);
#Titulo do grafico
$plot->SetTitle("Média do Docente por itens em Disciplinas 20101");
#Legenda, nesse caso serao tres pq o array possui 3 valores que serao apresentados
$SQL_LEG = mssql_query("SELECT DISTINCT NOME_DISC
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '".$Codigo."' ");
$dataL = array();
while($x = mssql_fetch_array($SQL_LEG)){
$dataL[] = $x['NOME_DISC'];
}
#echo "<pre>";
#print_r($dataL);
foreach($dataL as $value){
$plot->SetLegend($value);
}
//$plot->SetLegendStyle('right', 'right','');
#Utilizados p/ marcar labels, necessario mas nao se aplica neste ex. (manual) :
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
//formato da imagem
$plot->SetFileFormat('jpg');
#Gera o grafico na tela
$plot->DrawGraph();Que busca você quer fazer com os Selects ?
É necessário estes 3 Selects ?
É pq eu pego Média de cada disciplina de acordo com cada questão. Eu fiz um Estático FUNCIONA LEGAL Segue o Código:
<?php
require_once 'phplot.php';
include_once("../classes/Conexao.php");
$sqlQuestao = mssql_query(" SELECT distinct questao
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '9000851'
order by questao ");
$data = array();
while($DadosQuestao = mssql_fetch_array($sqlQuestao)){
/*
$sqlDisci = " SELECT DISTINCT DISCIPLINA
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '9000851'
AND QUESTAO = '".$DadosQuestao[0]."' ";
$rsDisc = mssql_query($sqlDisci);
while($DadodDisc = mssql_fetch_array($rsDisc)){
*/
$sqlQuestao2 = " SELECT Media
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '9000851'
AND QUESTAO = '".$DadosQuestao[0]."'
AND DISCIPLINA = 'CJU011' " ;
#echo "<pre>";
#print_r($sqlQuestao2);
$rsQuestao = mssql_query($sqlQuestao2);
$Array2 = mssql_fetch_array($rsQuestao);
$sqlQuestao3 = " SELECT Media
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '9000851'
AND QUESTAO = '".$DadosQuestao[0]."'
AND DISCIPLINA = 'PSC028' " ;
$rsQuestao3 = mssql_query($sqlQuestao3);
$Array3 = mssql_fetch_array($rsQuestao3);
$sqlQuestao4 = " SELECT Media
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '9000851'
AND QUESTAO = '".$DadosQuestao[0]."'
AND DISCIPLINA = 'PSC036' " ;
$rsQuestao4 = mssql_query($sqlQuestao4);
$Array4 = mssql_fetch_array($rsQuestao4);
$Array = array();
$Array[0] = $DadosQuestao[0];
$Array[1] = $Array2[0];
$Array[2] = $Array3[0];
$Array[3] = $Array4[0];
$data[] = array($Array[0],$Array[1],$Array[2],$Array[3]);
}
#echo "<pre>";
#print_r($data);
#Instancia o objeto e setando o tamanho do grafico na tela
$plot = new PHPlot(800,600);
#Tipo de borda, consulte a documentacao
$plot->SetImageBorderType('PLAIN');
#Tipo de grafico, nesse caso barras, existem diversos(pizza…)
//bars, stackedbars, lines, linepoints, area, points, pie, thinbarline, squared, stackedarea',
$plot->SetPlotType('LINES');
#Tipo de dados, nesse caso texto que esta no array
$plot->SetDataType('text-data');
#Setando os valores com os dados do array
$plot->SetDataValues($data);
#Titulo do grafico
$plot->SetTitle("Média do Docente por itens em Disciplinas 20101");
#Legenda, nesse caso serao tres pq o array possui 3 valores que serao apresentados
$SQL_LEG = mssql_query("SELECT DISTINCT NOME_DISC
FROM IE_VW_AV_DOC_GERAL_ITENS_DISC_ATL
WHERE CODIGO = '9000851'");
$dataL = array();
while($x = mssql_fetch_array($SQL_LEG)){
$dataL[] = $x['NOME_DISC'];
}
#echo "<pre>";
#print_r($dataL);
foreach($dataL as $value){
$plot->SetLegend($value);
}
//$plot->SetLegendStyle('right', 'right','');
#Utilizados p/ marcar labels, necessario mas nao se aplica neste ex. (manual) :
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
//formato da imagem
$plot->SetFileFormat('jpg');
#Gera o grafico na tela
$plot->DrawGraph();
?>
MAS ESTOU PRECISANDO QUE AS DISCIPLINAS SEJAM DINAMICAS ENTENDEU ?
Um exemplo
#incluindo a classe. verifique se diretorio e versao sao iguais, altere se precisar
Tenta entender... qqr coisa pergunta... não se preocupe com as minhas querys que estao ae... tenta implementar.
Se você nao entender... posta ae.