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

Dados no Relatório PHP + MySQL + FPDF


Milennia Maria

Pergunta

Oi, Script Brasil Fórum

 

Venho aqui a esta fonte inesgotável de conhecimentos em PHP e demais tecnologias web.

Contratei um projeto com um falso profissional e lastimavelmente o irresponsável me enganou e nunca concluiu meu projeto.

Ficaram faltando alguns dados do relatório.

 

1. Peço ajuda de vocês para complementar os dados das variáveis no cabeçalho do relatório abaixo do nome HISTÓRICO ESCOLAR

 

Nome do Aluno(a): NOME DO ALUNO(A)

Data de Nascimento: 12/12/2012                  Cidade: CIDADE                     Estado: ESTADO

Filiação - Pai: NOME DO PAI

Mãe: NOME DA MÃE

 

2. Onde aparece APROVEITAMENTO, colocar no campo média da disciplina no formato DECIMAL.

Exemplo: 10,0 | 9,5 | 8,4 | etc... pois aparece somente número inteiro: 1, 2, 3...

 

3. Mais abaixo, chamar os dados das variáveis dos campos Estabelecimento: Cidade: Estado: e Ano:

 

Link vistualiza o relatório:

 

http://www.hescolar....idDadosaluno=10

 

 

----> Estrutura da tabela `aluno`
 
CREATE TABLE IF NOT EXISTS `aluno` (
  `codaluno` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `nome` varchar(45) DEFAULT NULL,
  `datanasc` date DEFAULT NULL,
  `cidade` varchar(100) DEFAULT NULL,
  `estado` varchar(100) DEFAULT NULL,
  `pai` varchar(45) DEFAULT NULL,
  `mae` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`codaluno`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
 
 
-- Estrutura da tabela `dadosaluno`
 
CREATE TABLE IF NOT EXISTS `dadosaluno` (
  `idDadosaluno` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `codaluno` int(10) unsigned DEFAULT NULL,
  `idCurso` int(10) unsigned DEFAULT NULL,
  `serie` tinyint(1) unsigned DEFAULT NULL,
  `estabelecimento` varchar(45) DEFAULT NULL,
  `cidade` varchar(45) DEFAULT NULL,
  `estado` varchar(45) DEFAULT NULL,
  `ano` varchar(4) DEFAULT NULL,
  `situacao` tinyint(1) unsigned DEFAULT NULL,
  PRIMARY KEY (`idDadosaluno`),
  KEY `FK_dadosaluno_aluno` (`codaluno`),
  KEY `FK_dadosaluno_curso` (`idCurso`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

 

----> Arquivo do relatório fex.php

 

<?php
if(!isset($_SESSION))
    session_start();
    if(isset($_GET['idDadosaluno'])){
        require_once('../JTable/conexao.php');
        require_once('funcoesdados.php');
$idDadosaluno = $_GET['idDadosaluno'];
        $r = mysql_query("SELECT d.idCurso, d.codaluno FROM dadosaluno d WHERE d.idDadosaluno = $idDadosaluno LIMIT 1;");
        if(is_resource($r) && mysql_num_rows($r) > 0){
$idCurso = mysql_result($r, 0, 'idCurso');
$codaluno = mysql_result($r, 0, 'codaluno');
                $idDisciplina = pegarDadosPeloId($idCurso, 'disciplinas');
                $dadosaluno = pegarDadosPeloId(array('idCurso'=>$idCurso, 'codaluno'=>$codaluno), 'series_aluno_curso');
                //$nrodeperiodos = getNomeCampoLista($idCurso, 'nrodeperiodos');
require('cellpdf.php');
 
$pdf=new CellPDF('P','mm','A4');
$pdf->SetAutoPageBreak(0); 
$pdf->AddPage();
$pdf->SetFont('Arial','B',8);
$pdf->SetMargins(6,0,0);
$pdf->setY("5");
$pdf->setX("6");
 
$pdf->Cell(198,25,'','1',0,'C');
$pdf->Ln(5);
$pdf->SetMargins(35,0,0);
$pdf->setY("6");
$pdf->setX("7");
$pdf->Cell(39,23,'LOGO','1',0,'C');
$pdf->setY("6");
$pdf->setX("47");
$pdf->Image("imagens/logo.jpg",7,6,39,23,'jpg');
$pdf->SetFont('Arial','B',12);
$pdf->Cell(156,7, utf8_decode(' INFANTIL - FUNDAMENTAL - MÉDIO - PRÉ-VESTIBULAR'),'1',0,'C');
$pdf->setY("14");
$pdf->setX("47");
$pdf->SetFont('Arial','',9);
//$pdf->MultiCell(156,15, utf8_decode('Av. Presidente Getúlio Vargas, 44 - Zona Leste - CEP: 85.000-000'),'1',0,'C');
 
//$pdf->MultiCell(156,15, utf8_decode('Av. Presidente Getúlio Vargas, 44 - Zona Leste - CEP: 85.000-000'),'1',0,'0');
$pdf->MultiCell(126,5, utf8_decode('Av. Presidente Getúlio Vargas, 44 - Zona Leste - CEP: 85.000-000'),0,0);
$pdf->MultiCell(143,5, utf8_decode('C.N.P.J.: 00.000.000/0000-00 - Fones: (85) 0000-0000 ou (85) 0000-0000'),0,0);
$pdf->MultiCell(125,5, utf8_decode('Autorizado pela Resolução CEE/CE nº 000/0000'),0,0);
//$pdf->Write('15', utf8_decode('Av. Presidente Getúlio Vargas, 44 - Zona Leste - CEP: 85.000-000'),'1',0,'C');
//utf8_decode('Av. Presidente Getúlio Vargas, 44 - Zona Leste - CEP: 85.000-000'),'1',0,'C');
//$pdf->Cell(156,20, utf8_decode('C.N.P.J.: 00.000.000/0000-00 - Fones: (85) 0000-0000 ou (85) 0000-0000'),'1',0,'C');
//$pdf->Cell(156,20, utf8_decode('Autorizado pela Resolução CEE/CE nº 000/0000'),'1',0,'C');
 
$pdf->setY("31");
$pdf->setX("6");
//$pdf->SetFont('Arial','B',15);
//$pdf->Cell(198,7, utf8_decode('HISTÓRICO ESCOLAR'),'1',0,'C');
$pdf->Image("imagens/titulo2.jpg",6,31,198,7,'jpg');
 
$pdf->setY("31");
$pdf->setX("7");
$pdf->SetFont('Arial','B',15);
$pdf->Cell(198,8, utf8_decode('HISTÓRICO ESCOLAR'),'0',0,'C');
 
$pdf->Ln(8);
$pdf->setY("39");
$pdf->setX("6");
$pdf->Cell(198,22,'','1',0,'C');
$pdf->Ln(5);
$pdf->SetMargins(5,0,0);
 
$pdf->setY("40");
$pdf->setX("7");
$pdf->SetFont('Arial','B',9);
$pdf->Cell(196,5, utf8_decode('Nome do Aluno(a):'),'1',0,'L');
$pdf->setY("14");
$pdf->setX("47");
$pdf->SetFont('Arial','',9);
 
$pdf->setY("45");
$pdf->setX("7");
$pdf->SetFont('Arial','B',9);
$pdf->Cell(52,5, utf8_decode('Data de Nascimento:'),'1',0,'L');
$pdf->setY("14");
$pdf->setX("47");
$pdf->SetFont('Arial','',9);
 
$pdf->setY("45");
$pdf->setX("59");
$pdf->SetFont('Arial','B',9);
$pdf->Cell(72,5, utf8_decode('Cidade:'),'1',0,'L');
$pdf->setY("14");
$pdf->setX("47");
$pdf->SetFont('Arial','',9);
 
$pdf->setY("45");
$pdf->setX("131");
$pdf->SetFont('Arial','B',9);
$pdf->Cell(72,5, utf8_decode('Estado:'),'1',0,'L');
$pdf->setY("14");
$pdf->setX("47");
$pdf->SetFont('Arial','',9);
 
$pdf->setY("50");
$pdf->setX("7");
$pdf->SetFont('Arial','B',9);
$pdf->Cell(196,5, utf8_decode('Filiação - Pai:'),'1',0,'L');
$pdf->setY("14");
$pdf->setX("47");
$pdf->SetFont('Arial','',9);
 
$pdf->setY("55");
$pdf->setX("7");
$pdf->SetFont('Arial','B',9);
$pdf->Cell(196,5, utf8_decode('Mãe:'),'1',0,'L');
$pdf->setY("14");
$pdf->setX("47");
$pdf->SetFont('Arial','',9);
 
//$pdf->Ln(40);
$pdf->SetMargins(35,0,0);
$pdf->setY("62");
$pdf->setX("6");
 
//$pdf->Cell(30,35, utf8_decode('\n\nMÉDIO'),'1',0,'C');
$pdf->SetFont('Arial','B',12);
$pdf->Image("imagens/fundo.jpg",7,63,28,33,'jpg');
$pdf->Cell(30,35,ucfirst(getNomeCampoLista($idCurso, 'idCurso')),'1',0,'C');
$pdf->SetFont('Arial','B',8);
foreach($idDisciplina as $v){
    $pdf->VCell(8,35, utf8_decode($v),1,0,'D');
}
$x_fundo = 37; $x_fundo_mult = sizeof($idDisciplina); $x_fundo += (8 * $x_fundo_mult);
$pdf->SetFont('Arial','B',10);
$pdf->Image("imagens/fundo.jpg",$x_fundo,63,6,33,'jpg');//197
$pdf->VCell(8,35,"RESULTADO",1,0,'C');
/*
$xy=array(
          'Aproveitamento'=>array(array(), array('75','6'), array('98','6'), array('121','6')),
          'Faltas'=>array(array(), array('80','11'), array('103','11'), array('126','11')),
          'Carga Horária'=>array(array(), array('85','11'), array('108','11'), array('131','11')),
          
          );
*/
$y = 98; $x = 6; $y2 = 103; $x2 = 11; $y3 = 108; $x3 = 11;
$y_a = 23;
$i=1;
 
//print_r($dadosaluno);
foreach($dadosaluno as $kk => $vv){
//for($i=1; $i<= $nrodeperiodos; $i++){
 
//$pdf->Ln(20);
$pdf->SetFont('Arial','B',8);
$pdf->SetMargins(36,0,0);
$pdf->setY($y); $y+= 23;
$pdf->setX($x);
$pdf->SetFont('Arial','B',9);
$pdf->VCell(5,22, utf8_decode($vv.'º ANO'),1,0,'C');
    
$pdf->SetFont('Arial','B',8);
$pdf->Cell(25,4,'Aproveitamento','1',0,'C');
foreach($idDisciplina as $k => $v){
    $medias = pegarDadosPeloId(array('idDisciplina' => $k, 'idDadosaluno' => $kk ), 'media');
    if(isset($medias[$k]))
        $pdf->Cell(8,4,$medias[$k],'1',0,'C');
    else
        $pdf->Cell(8,4,' ','1',0,'C');
}
$pdf->SetFont('Arial','B',9);
$pdf->VCell(8,22,getNomeCampoLista($kk, 'situacao'),1,0,'C');
 
$pdf->Ln(5);
$pdf->SetFont('Arial','B',8);
foreach($idDisciplina as $k => $v){
    $faltas = pegarDadosPeloId(array('idDisciplina' => $k, 'idDadosaluno' => $kk ), 'faltas');
    if(isset($faltas[$k]))
        $pdf->Cell(8,4,$faltas[$k],'1',0,'C');
    else
        $pdf->Cell(8,4,' ','1',0,'C');
}
 
$pdf->Ln(5);
foreach($idDisciplina as $k => $v){
    $carga = pegarDadosPeloId(array('idDisciplina' => $k, 'idDadosaluno' => $kk ), 'carga');
    if(isset($carga[$k]))
        $pdf->Cell(8,4,$carga[$k],'1',0,'C');
    else
        $pdf->Cell(8,4,' ','1',0,'C');
}
$pdf->SetMargins(11,0,0);
$pdf->setY($y2); $y2 += $y_a;
$pdf->setX($x2);
$pdf->Cell(25,4,'Faltas','1',0,'C');
 
$pdf->SetMargins(11,0,0);
$pdf->setY($y3); $y3 += $y_a;
$pdf->setX($x3);
$pdf->Cell(25,4, utf8_decode('Carga Horária'),'1',0,'C');
$linha_branco = $x_fundo - 12;
$pdf->Ln(5);
$pdf->Cell($linha_branco,7,'','1',0,'C');
$i++;
//--
}
 
$pdf->Output();
        }
    }
?>
 
--------> MUITO GRATA !!!
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Olá!
A variável $dadosaluno retorna um array associativo?

Se for, tente incluir os dados assim:

$pdf->Cell(196,5, utf8_decode('Nome do Aluno(a):').$dadosaluno['nome'],'1',0,'L');

Editado por wash
Link para o comentário
Compartilhar em outros sites

  • 0

Bem pessoal, eu que não entendo PHP consegui descobrir que a mágica acontece aqui para que os dados do Nome do Aluno apareçam. É exatamente na seleção da consulta...
Como podemos ver, os dados do Nome do Aluno, Data Nascimento, Cidade, Estado, Pai e Mãe estão na tabela ALUNO e não em DADOSALUNO
Agora, eu pergunto aos nobres amigos e conhecedores da linguagem PHP, como eu faço referência a DUAS CONSULTAS de duas tabelas distintas

$idDadosaluno = $_GET['idDadosaluno'];
        $r = mysql_query("SELECT d.idCurso, d.codaluno FROM dadosaluno d WHERE d.idDadosaluno = $idDadosaluno LIMIT 1;");
        if(is_resource($r) && mysql_num_rows($r) > 0){
        $idCurso = mysql_result($r, 0, 'idCurso');
        $codaluno = mysql_result($r, 0, 'codaluno');
                $idDisciplina = pegarDadosPeloId($idCurso, 'disciplinas');
                $dadosaluno = pegarDadosPeloId(array('idCurso'=>$idCurso, 'codaluno'=>$codaluno), 'series_aluno_curso');

___________
Observação: note no link abaixo que já aparece o codaluno no lugar do NOME DO ALUNO porque eu estou pegando da consulta DADOSALUNO

$pdf->Cell(196,5, utf8_decode('Nome do Aluno(a): ').$codaluno,'1',0,'L');

Link: http://www.hescolar.16mb.com/pdf/fex.php?idDadosaluno=10

 

Muito grata por qualquer tipo de ajuda...

Editado por Milennia Maria
Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

Então muito provavelmente, a função pegarDadosPeloId não retorna um array associativo.

Para descobrir o que essa função retorna, coloque o seguinte trecho, abaixo da linha:

 $dadosaluno = pegarDadosPeloId(array('idCurso'=>$idCurso, 'codaluno'=>$codaluno), 'series_aluno_curso');
echo '<pre>'; print_r($dadosaluno); echo '</pre>';
Ao executar, deverá aparecer o conteúdo na tela
Editado por wash
Link para o comentário
Compartilhar em outros sites

  • 0

Bom, então estou em busca de pelo menos alguma solução.

Pergunto: como faço para consultar as duas tabelas ALUNO e DADOSALUNO ?

Lembrando que as duas tabelas estão no início do tópico.

Eis a rotina abaixo que está apontando somente para uma consulta, a da tabela DADOSALUNO.

Portanto, onde incrementar aí nessa rotina a consulta à outra tabela ALUNO ???

 

if(!isset($_SESSION))
    session_start();
    if(isset($_GET['idDadosaluno'])){
        require_once('../JTable/conexao.php');
        require_once('funcoesdados.php');
$idDadosaluno = $_GET['idDadosaluno'];
        $r = mysql_query("SELECT d.idCurso, d.codaluno FROM dadosaluno d WHERE d.idDadosaluno = $idDadosaluno LIMIT 1;");
        if(is_resource($r) && mysql_num_rows($r) > 0){
$idCurso = mysql_result($r, 0, 'idCurso');
$codaluno = mysql_result($r, 0, 'codaluno');
                $idDisciplina = pegarDadosPeloId($idCurso, 'disciplinas');
                $dadosaluno = pegarDadosPeloId(array('idCurso'=>$idCurso, 'codaluno'=>$codaluno), 'series_aluno_curso');
                //$nrodeperiodos = getNomeCampoLista($idCurso, 'nrodeperiodos');
require('cellpdf.php');
Editado por Milennia Maria
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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...