Ir para conteúdo
Fórum Script Brasil
  • 0

Select Não To Conseguindo Montar Esse Relatorio


EDENUNCIO

Pergunta

E aí pessoal to desesperado pra arrumar isso, tenho até sabado pra entregar o meu projeto na banca da facu..... Já perdi noites de sono e ainda não consegui, o problema eu acho q é simples.....

Bem Tenho um relatorio q gera a pontuação obitda por cada aluno, faço varios SELECT em varias tabelas trazendo os resultados pra montar o formulario.

Consigo gerar corretamente o formulario pra um aluno, mas tão me exigindo um relatorio q me traga todos os alunos com apontuação obtida por cada um.

Pensei q fosse simples fui no SELECT da tabela alunos onde a condição era buscar por matricula e madei buscar geral, pensei q iria resolver o meu problema agora acontece q ele me traz somente o primeiro registro da tabela aluno e os outros SELECT tb só gera a pontuação do primeiro registro da tabela aluno, senão ele me traz todos os registros de aluno e me gera a pontuação somente do ultimo resgistro da tabela aluno.

alguém pode me dizer como faço pra le todos os registros da tabela aluno e gerar a pontuação pra cada um?

<?

include('conecta.php');

echo $data = date("d/m/Y");

echo"<br />";

$sql9 = "SELECT * FROM aluno

GROUP BY  matricula ";

$rs = executaquery($sql9);

while ($linha=mysql_fetch_array($rs)) {{

$matricula = $linha["matricula"];

$nome = $linha["nome"];

$sobrenome = $linha["sobrenome"];

$cod_curso = $linha["cod_curso"];

echo "Matricula: $matricula";

echo "<br />";

echo "Nome: $nome $sobrenome";

echo "<br />";

echo "Curso: $cod_curso";

echo "<hr>";

}

echo"<center> <h4>1. APURAÇÃO DA FICHA SOCIO-ECONÔMICA<h4> </center>";

echo "<br />";

echo "<table  border=0 cellpadding=1 cellspacing=1>

<tr bgcolor=#cccccc>

  <td width=400>APURAÇÃO DA FICHA SOCIO-ECONÔMICA</td>

  <td width=100>Indicativo</td>

  <td width=100>Pontuação</td>

</tr>";

$sql = "SELECT matricula, COUNT(*) AS total

FROM gfamiliar

WHERE matricula = '$matricula'

GROUP BY  matricula";

//criei um alias para o count pois ele não tem nome assim o alias TOTAL fica sendo o nome do count().

$rs = executaquery($sql);

while($row = mysql_fetch_array($rs)){

$nomevariavel = $row["total"];

$matricula = $row["matricula"];

$total = $row["total"];

//echo $matricula." total de registros ". $total;

//echo "<br />";

if($total <= 3)

  $pontuacao = 5;

else if($total == 4)

  $pontuacao = 10;

else if($total == 5)

  $pontuacao = 15;

else if($total >= 6)

  $pontuacao = 20;

echo"<tr>

  <td>1.1. Componentes do grupo familiar</td>

  <td width=30>$total</td>

  <td width=30>$pontuacao</td>

</tr>";

}

$sql1 =SELECT sum(renda_bruta)AS total

FROM gfamiliar

WHERE matricula = '$matricula'";

$rs = executaquery($sql1);

while($row = mysql_fetch_array($rs)){

$nomevariavel = $row["total];

$total = $row["total"];

$sm = 300;

$bem_sm=( $total / $sm );

if($bem_sm >= 15)

  $pontu = 5;

else if($bem_sm >= 11 && $bem_sm<=14.9)

  $pontu = 10;

else if($bem_sm >= 9 && $bem_sm<=11)

  $pontu = 15;

else if($bem_sm >= 6 && $bem_sm<=8.9)

  $pontu = 20;

else if($bem_sm >= 3 && $bem_sm<=5.9)

  $pontu = 25;

else if($bem_sm <= 2.9)

  $pontu = 30;

echo"<tr>

  <td>1.2. Renda familiar bruta</td>

  <td width=30>$total</td>

  <td width=30>$pontu</td>

</tr>";

}

$total = ($pontuacao + $pontu );

echo"<tr>

  <td><b>1.7. PONTUÇÃO TOTAL </b></td>

  <td width=30></td>

  <td width=30><b>$total</b></td>

</tr>";

}

echo"</table>";

?>

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Guest - Calvin -

A verdade é que precisava da estrutura das tabelas e alguns entradas de dados de exemplo pra entender o que exatamente fazer.... mas ....

<?php
include('conecta.php');
echo $data = date("d/m/Y");
echo"<br />";

//$sql9 = " SELECT * FROM aluno GROUP BY matricula";
// Assumindo que a coluna |matricula| é o ID
$sql9 = "
	SELECT
  * 
	FROM 
  aluno 
	ORDER BY matricula
	";

$rs = executaquery($sql9);
while ($linha=mysql_fetch_array($rs))
{
	//{ <-???
	echo 'Matricula: ' . $linha['matricula'];
	echo '<br />';
	echo 'Nome: '. $linha['nome'] .' '. $linha['sobrenome'];
	echo '<br />';
	echo 'Curso: '. $linha['cod_curso'];
	echo "<hr>";
//} <-???
	echo "<center> <h4>1. APURAÇÃO DA FICHA SOCIO-ECONÔMICA<h4> </center>";
	echo "<br />";
	echo "<table  border=0 cellpadding=1 cellspacing=1>
  <tr bgcolor=#cccccc>
    <td width=400>APURAÇÃO DA FICHA SOCIO-ECONÔMICA</td>
    <td width=100>Indicativo</td>
    <td width=100>Pontuação</td>
  </tr>";
	/*	// acho que tá errado essa query :(
	$sql = "
  SELECT matricula, COUNT(*) AS total
  FROM gfamiliar
  WHERE matricula = '". $linha['matricula'] ."'
  GROUP BY matricula";
  //    criei um alias para o count pois ele não tem nome assim o 
  // alias TOTAL fica sendo o nome do count().
	*/
	$sql = "SELECT 
    COUNT(*) AS total
  	FROM 
    gfamiliar
  	WHERE
    matricula = '". $linha['matricula'] ."'
  	";
	$rs = executaquery($sql);
	while($row = mysql_fetch_array($rs))
	{
  //echo $row['matricula"] .' total de registros '. $row['total'];
  //echo "<br />";
  if ($row['total'] <= 3)
  {
  	$pontuacao = 5;
  }
  else if($row['total'] == 4)
  {
  	$pontuacao = 10;
  }
  else if($row['total'] == 5)
  {
  	$pontuacao = 15;
  }
  else if($row['total'] >= 6)
  {
  	$pontuacao = 20;
  }
  echo '<tr>
    <td>1.1. Componentes do grupo familiar</td>
    <td width=30>'. $row['total'] .'</td>
    <td width=30>'. $pontuacao .'</td>
  </tr>';
	}

	$sql1 = "
  	SELECT 
    sum(renda_bruta) AS total 
  	FROM 
    gfamiliar 
  	WHERE 
    matricula = '". $linha['matricula'] ."'
  	";
	$rs = executaquery($sql1);

	while($row = mysql_fetch_array($rs))
	{
  $nomevariavel = $row["total"];
  $total = $row["total"];
  $sm = 300;
  $bem_sm=( $total / $sm );
  if($bem_sm >= 15)
  {
  	$pontu = 5;
  }
  else if($bem_sm >= 11 && $bem_sm<=14.9)
  {
     $pontu = 10;
  }
  else if($bem_sm >= 9 && $bem_sm<=11)
  {
     $pontu = 15;
  }
  else if($bem_sm >= 6 && $bem_sm<=8.9)
  {
     $pontu = 20;
  }
  else if($bem_sm >= 3 && $bem_sm<=5.9)
  {
     $pontu = 25;
  }
  else if($bem_sm <= 2.9)
  {
     $pontu = 30;
  }
  echo"<tr>
    <td>1.2. Renda familiar bruta</td>
    <td width=30>$total</td>
    <td width=30>$pontu</td>
  	</tr>";
	}
	$total = $pontuacao + $pontu;
	echo "<tr>
   <td><b>1.7. PONTUÇÃO TOTAL </b></td>
   <td width=30></td>
   <td width=30><b>$total</b></td>
	</tr>";
//	} <-???
	echo"</table>";
} //<--!!!
?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...