Ir para conteúdo

POWERED BY:

Arquivado

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

filhopqd

formulario com agrupamento de 2 id

Recommended Posts

Bom dia!

 

Fiz um formulario que exibisse notas de determinadas disciplinas < 5,0

 

$sql = "select a.nrmat, a.nome, b.nota, b.nrdisc

from alunos a, bimestre1 b

where a.nrmat = b.nrmat and b.nrdisc >= 991 and b.nrdisc <= 995 and b.nota < 5

order by b.nrmat";

 

Resultado:

 

nrmat

nome

nota

nrdisc

231

jose

3,5

992

231

jose

4,5

994

432

jose

3,8

995

432

maria

2,0

993

432

maria

2,0

991

 

Estou tentando criar outro formulário que me mostre as disciplinas em recuperação numa única linha de acordo com o id do aluno.

Criei uma variável para cada disciplina.

 

if ($linha['nrdisc']== 991)

{ $mat= "X";} else {$mat= "";}

 

if ($linha['nrdisc']== 992)

{ $por= "X";} else { $por= " ";}

 

if ( $linha['nrdisc']== 993)

{ $cfb= "X";} else { $cfb= " ";}

 

if ( $linha['nrdisc']== 994)

{ $geo= "X";} else { $geo= " ";}

 

if ( $linha['nrdisc']== 995)

{ $his= "X";} else { $his= " ";}

 

Utilizando o SQL acima, foram criados vários comunicados para o mesmo aluno conforme resultado abaixo:

-----------------------------------------------------------------------------------------------------------------

Comunicado:

Aluno: Jose

Disciplina em Recuperação: ( X ) Português ( )Matemática ( ) CFB ( )História ( )Geografia

-----------------------------------------------------------------------------------------------------------------

Comunicado:

Aluno: Jose

Disciplina em Recuperação: ( ) Português ( )Matemática ( ) CFB ( )História ( X )Geografia

-----------------------------------------------------------------------------------------------------------------

Comunicado:

Aluno: Jose

Disciplina em Recuperação: ( ) Português ( )Matemática ( ) CFB (X )História (  )Geografia

 

-----------------------------------------------------------------------------------------------------------------

 

Queria saber como exibir um único formulário para cada aluno especificando as disciplinas que ficou em recuperação, conforme exemplo abaixo:

 

-----------------------------------------------------------------------------------------------------------------

Comunicado:

Aluno: Jose

Disciplina em Recuperação: ( X )Português  (  )Matemática  (  )CFB  ( X )História  ( X )Geografia

-----------------------------------------------------------------------------------------------------------------

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só você usar os seus ifs no local onde vai ser exibido o resultado, digamos que você está fazendo assim:

 

echo 'Comunicado: ' .  $linha["comunicado"] . '<br>';

echo 'Aluno: ' . $linha["aluno"] . '<br>';

echo 'Disciplina em Recuperação: ';

if ($linha['nrdisc']== 991) {
    echo '{ X }';

}  else  {

    echo '(  )';

}
   echo 'Portugues ';

if ($linha['nrdisc']== 992) {
    echo '{ X }';

}  else  {

    echo '(  )';

}
   echo 'Matemática';

if ($linha['nrdisc']== 993) {
    echo '{ X }';

}  else  {

    echo '(  )';

}
   echo 'História';

if ($linha['nrdisc']== 994) {
    echo '{ X }';

}  else  {

    echo '(  )';

}
   echo 'Geografia';

 

e assim por diante....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Sérgio

 

Deu certo, mais continua exibindo varios formularios, acho que é o SQL , pois ele exibe os nrdisc em coluna em vez de linha.

 

Acho que se modificasse o SQL agrupando o nrmat e distribuisse as notas na mesma linha, dava certo.

 

nrmat

nome

por

cfb

his

geo

231

jose

3,5

 

3,8

4,5

432

maria

2,0

2,0

 

 

 

Estou tentando esse SQL, mais está demorando muito.

 

$sql = "select a.nrmat, a.nome,

(select  notas from bimestre1  where nrmat = a.nrmat and nrdisc = 991) AS mat,

(select  notas from bimestre1  where nrmat = a.nrmat and nrdisc = 992) AS por,

(select  notas from bimestre1  where nrmat = a.nrmat and nrdisc = 993) AS cfb,

(select  notas from bimestre1  where nrmat = a.nrmat and nrdisc = 994) AS his,

(select  notas from bimestre1  where nrmat = a.nrmat and nrdisc = 995) AS geo

from alunos a, bimestre1 b

where  b.nota < 5

group by a.nrmat, a.nome, mat, por,cfb,his, geo

order by b.nrmat";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hoje nem o café tá me ajudando, acho que você pode melhorar a sua estrutura pra facilitar o seu trabalho, se você não quer que repita os nomes você vai ter que criar tabelas separadas, uma para os alunos que vai ser a base da sua consulta, uma para identificar as matérias, uma pra identificar as disciplinas e uma pra armazenar as notas com os respectivos campos relacionados as outras tabelas, dessa forma você consulta a tabela alunos e pra cada aluno você consulta a tabela nota e exibe os resultados...

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos lá, vou te dar um exemplo da solução que te propus

Eu criei a seguinte estrutura

tabelas.jpg.1ff215ad9b5e0d0413ab45c7f3df1474.jpg

 

E usei o código abaixo para exibir os dados:

 


<?php
$con = new PDO("mysql:host=localhost;dbname=test", "root", "",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));

$rs1 = $con->prepare("SELECT * FROM alunos ORDER BY nome ASC");
$rs1->execute();
while($row1 = $rs1->fetch(PDO::FETCH_ASSOC)){ 
    
    $idaluno = $row1["id"];
    echo "--------------------------------------------------<br>";        
    echo "Aluno: " . $row1["nome"] . '<br>';
    $rs2 = $con->prepare("SELECT id_materia, materia 
                          FROM bimestre1 
                          INNER JOIN materia
                          ON bimestre1.id_materia = materia.id
                          WHERE id_aluno = '$idaluno' ORDER BY materia ASC");
    $rs2->execute();
    while($row2 = $rs2->fetch(PDO::FETCH_ASSOC)){
        
        echo "Matéria: " . $row2["materia"] . '<br>';
        $idmateria = $row2["id_materia"];
        $rs3 = $con->prepare("SELECT id_materia, disciplina, nota 
                              FROM bimestre1 
                              INNER JOIN disciplina
                              ON bimestre1.id_disc = disciplina.id
                              WHERE id_aluno = '$idaluno' AND id_materia = '$idmateria' ORDER BY disciplina ASC");
        $rs3->execute();
        echo "Disciplinas em Recuperação: ";
        while($row3 = $rs3->fetch(PDO::FETCH_ASSOC)){ 
            
            if($row3["nota"]<5){
                echo '(X)'; 
            } else {
                echo '( )';
            }
            echo $row3["disciplina"] . '  ';
        }
        echo '<br>';
    }
    
}
            
echo "--------------------------------------------------<br>";
?>

 

E o resultado foi este:

resultado.jpg.88853cc81372a148789fd01623deb988.jpg

 

Espero que ajude a clarear as idéias pq meu café já acabou rsrsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Sérgio!

 

Ficou exatamente como estava precisando.

 

Fico feliz em saber que existem profissionais como você,  sempre dispostos a ajudar.

 

Muito obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por luiz0o
      Estou fazendo um projeto para faculdade, e tenho um formulário, esse formulário precisa enviar as respostas tanto para um banco de dados, mas também tem que enviar para uma API que envia para meu email, mas não sei como fazer essas duas coisas ao mesmo tempo
    • Por rodrigomouran
      Galera, sou novo por aqui e em códigos PHP e Web, mas, tenho me virado. Porém esbarrei em um problema.
      Estou usando um banco PostgreSQL para desenvolvimento de uma aplicação simples para minha empresa onde eu quero digitar um código numérico no campo do formulário e ele me retornar 2 outros campos deste formulário preenchidos baseado no código pesquisado no banco.
      Tenho a minha página index.html com o conteúdo:
      <html> <head>   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>   <script type="text/javascript">   $(document).ready(function(){     $("input[name='usucod']").blur(function(){       var $usunom = $("input[name='usunom']");       var $pricod = $("input[name='pricod']");       $usunom.val('Carregando...');       $pricod.val('Carregando...');         $.getJSON(           'function.php',           { usucod: $( this ).val() },           function( json )           {             $usunom.val( json.usunom );             $pricod.val( json.pricod );           }         );     });   });   </script> </head> <body>   <form action="" method="post">     <label>Código: <input type="text" name="usucod" /></label>     <label>Nome: <input name="usunom" type="text" disabled="disabled" value="" /></label>     <label>Pricod: <input type="text" name="pricod" value="" /></label>   </form> </body> </html> e minha página function.php com o conteúdo:
      <?php   /**    * função que devolve em formato JSON os dados do cliente    */   function retorna( $usucod, $db )   {     $sql = "SELECT usucod, usunom, pricod FROM usuario WHERE usucod = {$usucod} ";     $query = $db->query( $sql );     $arr = Array();     if( $query->num_rows )     {       while( $dados = $query->fetch_object() )       {         $arr['usunom'] = $dados->usunom;         $arr['pricod'] = $dados->pricod;       }     }     else       $arr['usunom'] = 'não encontrado';     return json_encode( $arr );   } /* só se for enviado o parâmetro, que devolve os dados */ if( isset($_GET['usucod']) ) {   $db = pg_connect("host=XXX.XXX.XXX.XXX port=5432 dbname=banco user=usuario password=senha");   echo retorna( filter ( $_GET['usucod'] ), $db ); } function filter( $var ){   return $var; } Ao digitar o código, meus campos a serem preenchidos ficam somente com o valor 'carregando...' visível.
       
       
       
      Agradeço a ajuda!

    • Por fmcmf
      Boa tarde...
      Tenho um formulário no site e o envio é usando o PHPMailer... o email está chegando no destino.... mas o conteúdo inserido nos campos não chega.
       
      Segue o código do formulário em html:
       
      <div id="banner"> <img class="fotobanner" src="img/comprar.png" alt=""> </div> <div class="formulario"> <h3 align="center"> PREENCHA OS DADOS ABAIXO PARA CONTRATAR: </h3> <form action=”envia.php” method=”post” id=”contato”> <div class="form-group"> <label for="exampleFormControlInput1">Nome completo:</label> <input type="nome" class="form-control" id="nome" placeholder="Nome" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">CPF:</label> <input type="cpf" class="form-control" id="cpfcli" placeholder="CPF" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Gênero:</label> <select class="form-control" id="generocli" required> <option>Feminino</option> <option>Masculino</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">Data de Nascimento (dia/mês/ano):</label> <input type="" class="form-control" id="nasccli" placeholder="Data de nascimento (dia/mês/ano)" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Estado Civil:</label> <select class="form-control" id="ecivilcli" required> <option>Casado(a)</option> <option>Solteiro(a)</option> <option>Divorciado(a)</option> <option>Viúvo(a)</option> </select> </div> <div class="form-group"> <label for="exampleFormControlTextarea1">Endereço Completo + CEP:</label> <textarea class="form-control" id="endcli" rows="3" required></textarea> </div> <div class="form-group"> <label for="exampleFormControlInput1">Celular com DDD:</label> <input type="" class="form-control" id="celcli" placeholder="Celular com DDD" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">E-mail:</label> <input type="" class="form-control" id="emailcli" placeholder="E-mail" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">PLANO Desejado:</label> <select class="form-control" id="plano" required> <option>SELECT</option> <option>PLUS</option> <option>TOP</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">NOME do PET:</label> <input type="" class="form-control" id="nomedopet" placeholder="NOME do PET" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">IDADE do PET:</label> <input type="" class="form-control" id="idadedopet" placeholder="IDADE do PET" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Tipo do PET:</label> <select class="form-control" id="tipodopet" required> <option>GATO</option> <option>CACHORRO</option> </select> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Gênero do PET:</label> <select class="form-control" id="generodopet" required> <option>FÊMEA</option> <option>MACHO</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">RAÇA do PET:</label> <input type="" class="form-control" id="racadopet" placeholder="RAÇA do PET" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">PORTE do PET:</label> <select class="form-control" id="portedopet" required> <option>Pequeno</option> <option>Médio</option> <option>Grande</option> </select> </div> <div class="dobotao"> <button type="submit" class="botao"> <strong>ENVIAR DADOS </strong> </button></div> </form></div> Segue o código do enviar.php
       
      <?php require 'PHPMailerAutoload.php'; require 'class.phpmailer.php'; $mailer = new PHPMailer; //$mailer->SMTPDebug = 2; // Enable verbose debug output $mailer->isSMTP(); // Set mailer to use SMTP $mailer->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); if($_GET['acao'] = 'enviar'){ $nome = $_POST['nome']; $cpfcli = $_POST['cpfcli']; $generocli = $_POST['generocli']; $nasccli = $_POST['nasccli']; $ecivilcli = $_POST['ecivilcli']; $celcli = $_POST['celcli']; $plano = $_POST['plano']; $nomedopet = $_POST['nomedopet']; $tipodopet = $_POST['tipodopet']; $generodopet = $_POST['generodopet']; $racadopet = $_POST['racadopet']; $portedopet = $_POST['portedopet']; $mailer->Host = 'pleskl0040.hospedagemdesites.ws'; $mailer->SMTPAuth = true; // Enable SMTP authentication $mailer->IsSMTP(); $mailer->isHTML(true); // Set email format to HTML $mailer->Port = 587; // Ativar condição utf-8, para acentuação $mailer->CharSet = 'UTF-8'; $mailer->Username = 'formulario@thna.com.br'; // SMTP username $mailer->Password = '@Nathi1010'; // SMTP password // email do destinatario $address = "formulario@thna.com.br"; //$mailer->SMTPDebug = 1; $corpoMSG = "nome: $nome <br> cpf: $cpfcli <br> genero: $generocli <br> nascimento: $nasccli <br> estado: $ecivilcli <br> celular: $cel <br> plano: $plano <br> pet: $nomedopet <br> tipo: $tipodopet generopet $generodopet <br> racapet: $racadopet <br> porte: $portedopet"; $mailer->AddAddress($address, "destinatario"); $mailer->AddAddress("formulario@thna.com.br", "destinatario 2"); // 2º destinatário se querer enviar, se não, comente com // $mailer->From = 'formulario@thna.com.br'; $mailer->Sender = 'formulario@thna.com.br'; $mailer->FromName = "Site Saúde PET"; // Seu nome // assunto da mensagem $mailer->Subject = $assunto; // corpo da mensagem $mailer->MsgHTML($corpoMSG); if(!$mailer->Send()) { echo "Erro: " . $mailer->ErrorInfo; } else { echo "Mensagem enviada com sucesso!"; } } header('Location: /pet/confirmado.html');  ?> Como comentei,  o email chega... mas o conteúdo do form não chega... Segue anexo print da caixa do e-mail:
       
      Desde já agradeço.

    • Por fmcmf
      Boa tarde...
      Tenho um formulário no site e o envio é usando o PHPMailer... o email está chegando no destino.... mas o conteúdo inserido nos campos não chega.
       
      Segue o código do formulário em html:
      <div id="banner"> <img class="fotobanner" src="img/comprar.png" alt=""> </div> <div class="formulario"> <h3 align="center"> PREENCHA OS DADOS ABAIXO PARA CONTRATAR: </h3> <form action=”envia.php” method=”post” id=”contato”> <div class="form-group"> <label for="exampleFormControlInput1">Nome completo:</label> <input type="nome" class="form-control" id="nome" placeholder="Nome" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">CPF:</label> <input type="cpf" class="form-control" id="cpfcli" placeholder="CPF" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Gênero:</label> <select class="form-control" id="generocli" required> <option>Feminino</option> <option>Masculino</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">Data de Nascimento (dia/mês/ano):</label> <input type="" class="form-control" id="nasccli" placeholder="Data de nascimento (dia/mês/ano)" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Estado Civil:</label> <select class="form-control" id="ecivilcli" required> <option>Casado(a)</option> <option>Solteiro(a)</option> <option>Divorciado(a)</option> <option>Viúvo(a)</option> </select> </div> <div class="form-group"> <label for="exampleFormControlTextarea1">Endereço Completo + CEP:</label> <textarea class="form-control" id="endcli" rows="3" required></textarea> </div> <div class="form-group"> <label for="exampleFormControlInput1">Celular com DDD:</label> <input type="" class="form-control" id="celcli" placeholder="Celular com DDD" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">E-mail:</label> <input type="" class="form-control" id="emailcli" placeholder="E-mail" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">PLANO Desejado:</label> <select class="form-control" id="plano" required> <option>SELECT</option> <option>PLUS</option> <option>TOP</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">NOME do PET:</label> <input type="" class="form-control" id="nomedopet" placeholder="NOME do PET" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">IDADE do PET:</label> <input type="" class="form-control" id="idadedopet" placeholder="IDADE do PET" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Tipo do PET:</label> <select class="form-control" id="tipodopet" required> <option>GATO</option> <option>CACHORRO</option> </select> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Gênero do PET:</label> <select class="form-control" id="generodopet" required> <option>FÊMEA</option> <option>MACHO</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">RAÇA do PET:</label> <input type="" class="form-control" id="racadopet" placeholder="RAÇA do PET" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">PORTE do PET:</label> <select class="form-control" id="portedopet" required> <option>Pequeno</option> <option>Médio</option> <option>Grande</option> </select> </div> <div class="dobotao"> <button type="submit" class="botao"> <strong>ENVIAR DADOS </strong> </button></div> </form></div>  
      Segue o código do enviar.php

       
      <?php require 'PHPMailerAutoload.php'; require 'class.phpmailer.php'; $mailer = new PHPMailer; //$mailer->SMTPDebug = 2; // Enable verbose debug output $mailer->isSMTP(); // Set mailer to use SMTP $mailer->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); if($_GET['acao'] = 'enviar'){ $nome = $_POST['nome']; $cpfcli = $_POST['cpfcli']; $generocli = $_POST['generocli']; $nasccli = $_POST['nasccli']; $ecivilcli = $_POST['ecivilcli']; $celcli = $_POST['celcli']; $plano = $_POST['plano']; $nomedopet = $_POST['nomedopet']; $tipodopet = $_POST['tipodopet']; $generodopet = $_POST['generodopet']; $racadopet = $_POST['racadopet']; $portedopet = $_POST['portedopet']; $mailer->Host = 'pleskl0040.hospedagemdesites.ws'; $mailer->SMTPAuth = true; // Enable SMTP authentication $mailer->IsSMTP(); $mailer->isHTML(true); // Set email format to HTML $mailer->Port = 587; // Ativar condição utf-8, para acentuação $mailer->CharSet = 'UTF-8'; $mailer->Username = 'formulario@thna.com.br'; // SMTP username $mailer->Password = '@Nathi1010'; // SMTP password // email do destinatario $address = "formulario@thna.com.br"; //$mailer->SMTPDebug = 1; $corpoMSG = "nome: $nome <br> cpf: $cpfcli <br> genero: $generocli <br> nascimento: $nasccli <br> estado: $ecivilcli <br> celular: $cel <br> plano: $plano <br> pet: $nomedopet <br> tipo: $tipodopet generopet $generodopet <br> racapet: $racadopet <br> porte: $portedopet"; $mailer->AddAddress($address, "destinatario"); $mailer->AddAddress("formulario@thna.com.br", "destinatario 2"); // 2º destinatário se querer enviar, se não, comente com // $mailer->From = 'formulario@thna.com.br'; $mailer->Sender = 'formulario@thna.com.br'; $mailer->FromName = "Site Saúde PET"; // Seu nome // assunto da mensagem $mailer->Subject = $assunto; // corpo da mensagem $mailer->MsgHTML($corpoMSG); if(!$mailer->Send()) { echo "Erro: " . $mailer->ErrorInfo; } else { echo "Mensagem enviada com sucesso!"; } } header('Location: /pet/confirmado.html'); ?> Como comentei,  o email chega... mas o conteúdo do form não chega... Segue anexo print da caixa do e-mail:
       
      Desde já agradeço.
       
       
       
       

    • Por Roberto S. Santos
      Boa noite devs.
      Poderiam me ajudar ?
      Estou querendo fazer o seguinte em um formulário PHP...
      O usuário deve cadastrar a sua data e horário do uso na churrasqueira e quando chegar nesta data e no horário final ele apaga os dados do cadastro desta reserva.
      Como posso fazer isto com PHP ?
      Temos...
      data reserva
      hora reserva  (hora inicial)
      hora final (já vai estar pré definida na base de dados)
      Banco de Dados : clientes
      Tabela : reserva
      Deus abençoe a todos.
       
×

Informação importante

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