Jump to content
Fórum Script Brasil
  • 0

Update em vários campos dentro de While


maicon1121

Question

Bom dia a todos!

Tenho o seguinte código:

<?php

set_time_limit(0);


        $sql = "SELECT N.NOTA_ESCOLA, N.NOTA_CODIGO, N.NOTA_DM, N.NOTA_DL,  ".
"N.NOTA_ANO, N.NOTA_BIMESTRE,  ".
"N.NOTA_DISCIPLINA, A.ALU_CODIGO,  ".
"M.mat_numero_chamada, A.alu_nome,  ".
"D.DIS_NOME, N.NOTA_NOTA, M.MAT_TURMA  ".
"FROM TABELA_NOTAS N  ".
"INNER JOIN TABELA_MATRICULA M  ".
"ON M.MAT_ALUNO = N.NOTA_ALUNO ".
"AND M.MAT_ESCOLA = N.NOTA_ESCOLA  ".
"AND M.MAT_ANO = N.NOTA_ANO  ".
"INNER JOIN TABELA_ALUNOS A  ".
"ON A.ALU_CODIGO = N.NOTA_ALUNO  ".
"INNER JOIN TABELA_DISCIPLINA D  ".
"ON D.dis_escola = N.NOTA_ESCOLA  ".
"AND D.DIS_CODIGO = N.NOTA_DISCIPLINA  ".
"WHERE N.NOTA_ANO = '{$_REQUEST['ANO']}'  ".
"AND N.NOTA_ESCOLA = '{$_REQUEST['ESCOLA']}'  ".
"AND N.NOTA_BIMESTRE = '{$_REQUEST['BIM']}'  ".
"AND N.NOTA_DISCIPLINA = '{$_REQUEST['DIS']}'  ".
"AND M.MAT_TURMA = '{$_REQUEST['ID']}' ".
"AND M.MAT_STATUS = 0 ".
               "ORDER BY M.MAT_NUMERO_CHAMADA, A.ALU_NOME";
//print $sql;
    $r = ibase_query($conexao, $sql);
        
        $sqlnometurma = "SELECT TUR_NOME FROM TABELA_TURMA WHERE TUR_CODIGO = '{$_REQUEST['ID']}' ";
        $r2 = ibase_query($conexao, $sqlnometurma);
        $dados2 = ibase_fetch_object($r2);
        
        $sqlnomedisciplina = "SELECT DIS_NOME FROM TABELA_DISCIPLINA WHERE DIS_CODIGO = '{$_REQUEST['DIS']}' ";
        $r3 = ibase_query($conexao, $sqlnomedisciplina);
        $dados3 = ibase_fetch_object($r3);


print 'Turma: ' . $dados2->TUR_NOME .' - ' . 'Disciplina: ' . $dados3->DIS_NOME . ' - '.$_REQUEST['BIM'] .'º Bimestre ' . '      ' . '<a href="#" onClick="history.back(-3)">Selecione outro Bimestre</a><br /><br />

<table border="0" cellpadding="2" cellspacing="2" width="80%" align="center">
    <tr>
        <td align="center" class="tabela" width="5%">Nº</td>
            <td class="tabela" width="40%">Nome</td>
        <td align="center" class="tabela" width="10%">Nº Chamada</td>
            <td align="center" class="tabela" width="15%">Nota</td>
                <td align="center" class="tabela" width="15%">Dispensas</td>
    </tr>';

    while($dados = ibase_fetch_object($r)){
    
        print'<tr>
            <td align="center" class="dados">'.$dados->MAT_NUMERO_CHAMADA.'</td>
                <td class="dados">'.$dados->ALU_NOME.'</td>
            <td align="center" class="dados">'.$dados->MAT_NUMERO_CHAMADA.'</td>
            <td align="center" class="dados">
                <form action="?pg=mostrar&funcao=alterar_nota" method="post">
                    <input type="hidden" name="ALUNO" value="'.$dados->ALU_CODIGO.'" >
                    <input type="hidden" name="PROF" value="'.$_SESSION['PRO_CODIGO'].'" >
                    <input type="hidden" name="ANO" value="'.$dados->NOTA_ANO.'" >
                    <input type="hidden" name="BIM" value="'.$_REQUEST['BIM'].'" >
                    <input type="hidden" name="TURMA" value="'.$dados->MAT_TURMA.'" >
                    <input type="hidden" name="ESCOLA" value="'.$dados->NOTA_ESCOLA.'" >
                    <input type="hidden" name="DIS" value="'.$dados->NOTA_DISCIPLINA.'" >
                    <input type="hidden" name="COD_NOTA" value="'.$dados->NOTA_CODIGO.'" >
              
                    <input type="text" name="NOTA" size=3 value="'.number_format($dados->NOTA_NOTA, 1, '.', '').'">
              
                    <input type="submit" value="Gravar">
                </form>
            </td>
                        <td align="center" class="dados">
                        <table border=0 width="100%">
                                <tr>
                                <td>
                <form action="?pg=mostrar&funcao=alterar_dm" method="post">
                                        '.$dados->NOTA_DM.'
                    <input type="hidden" name="ALUNO" value="'.$dados->ALU_CODIGO.'" >
                    <input type="hidden" name="PROF" value="'.$_SESSION['PRO_CODIGO'].'" >
                    <input type="hidden" name="ANO" value="'.$dados->NOTA_ANO.'" >
                    <input type="hidden" name="BIM" value="'.$_REQUEST['BIM'].'" >
                    <input type="hidden" name="TURMA" value="'.$dados->MAT_TURMA.'" >
                    <input type="hidden" name="ESCOLA" value="'.$dados->NOTA_ESCOLA.'" >
                    <input type="hidden" name="DIS" value="'.$dados->NOTA_DISCIPLINA.'" >
                                        <input type="hidden" name="COD_NOTA" value="'.$dados->NOTA_CODIGO.'" >
                           
                    <input type="submit" value="DM">
                </form>
                                </td>
                                <td>
                                <form action="?pg=mostrar&funcao=alterar_dl" method="post">
                                        '.$dados->NOTA_DL.'
                    <input type="hidden" name="ALUNO" value="'.$dados->ALU_CODIGO.'" >
                    <input type="hidden" name="PROF" value="'.$_SESSION['PRO_CODIGO'].'" >
                    <input type="hidden" name="ANO" value="'.$dados->NOTA_ANO.'" >
                    <input type="hidden" name="BIM" value="'.$_REQUEST['BIM'].'" >
                    <input type="hidden" name="TURMA" value="'.$dados->MAT_TURMA.'" >
                    <input type="hidden" name="ESCOLA" value="'.$dados->NOTA_ESCOLA.'" >
                    <input type="hidden" name="DIS" value="'.$dados->NOTA_DISCIPLINA.'" >
                    <input type="hidden" name="COD_NOTA" value="'.$dados->NOTA_CODIGO.'" >

                    <input type="submit" value="DL">
                </form>
                                </td>
                                </tr>
                        </table>
            </td>
        </tr>';
   }
   ibase_close($conexao);
?>
</table>

<form action="mostrar_new.php" method="post">
        <input type="submit" value="Gravar Todos">
</form>

<?php

if($_GET['funcao'] == "alterar_nota"){
    
        //trocando virgula por ponto e ponto por ponto
//      if(!strpos({$_POST['NOTA']},".")&&(strpos({$_POST['NOTA']},",")))
//      $NotaAtual=substr_replace({$_POST['NOTA']}, '.', strpos({$_POST['NOTA']}, ","), 1);
        $NotaAtual2 = str_replace(',', '.', $_POST['NOTA']); 
        
        $query = "UPDATE TABELA_NOTAS N SET N.NOTA_NOTA = $NotaAtual2 ".
                   "WHERE N.NOTA_CODIGO = '{$_POST['COD_NOTA']}' " .
                   "AND N.NOTA_ALUNO = '{$_POST['ALUNO']}' " .
                   "AND N.NOTA_ANO = '{$_POST['ANO']}' " .
                   "AND N.NOTA_BIMESTRE = '{$_POST['BIM']}' " .
                   "AND N.NOTA_ESCOLA = '{$_POST['ESCOLA']}' " .
                   "AND N.NOTA_DISCIPLINA = '{$_POST['DIS']}' ";
        PRINT $query;
    $r = ibase_query($conexao, $query);
    if($r){
        
                //print '<script> history.back(); </script>';
        header("Location: ?pg=mostrar&ID={$_POST['TURMA']}&ANO={$_POST['ANO']}&ESCOLA={$_POST['ESCOLA']}&DIS={$_POST['DIS']}&BIM={$_POST['BIM']}&PROF={$_SESSION['PRO_CODIGO']}");
    }
}
        
if($_GET['funcao'] == "alterar_dm"){
    
        $query = "SELECT N.NOTA_DM FROM TABELA_NOTAS N ".
                   "WHERE N.NOTA_CODIGO = '{$_POST['COD_NOTA']}' " .
                   "AND N.NOTA_ALUNO = '{$_POST['ALUNO']}' " .
                   "AND N.NOTA_ANO = '{$_POST['ANO']}' " .
                   "AND N.NOTA_BIMESTRE = '{$_POST['BIM']}' " .
                   "AND N.NOTA_ESCOLA = '{$_POST['ESCOLA']}' " .
                   "AND N.NOTA_DISCIPLINA = '{$_POST['DIS']}' ";
        $r = ibase_query($conexao, $query);
        $DM = ibase_fetch_object($r);
        
        if ($DM->NOTA_DM=='N'){
                $query = "UPDATE TABELA_NOTAS N SET N.NOTA_DM = 'S' ".
                   "WHERE N.NOTA_CODIGO = '{$_POST['COD_NOTA']}' " .
                   "AND N.NOTA_ALUNO = '{$_POST['ALUNO']}' " .
                   "AND N.NOTA_ANO = '{$_POST['ANO']}' " .
                   "AND N.NOTA_BIMESTRE = '{$_POST['BIM']}' " .
                   "AND N.NOTA_ESCOLA = '{$_POST['ESCOLA']}' " .
                   "AND N.NOTA_DISCIPLINA = '{$_POST['DIS']}' ";
                 }
                 
        if ($DM->NOTA_DM=='S'){
                $query = "UPDATE TABELA_NOTAS N SET N.NOTA_DM = 'N' ".
                   "WHERE N.NOTA_CODIGO = '{$_POST['COD_NOTA']}' " .
                   "AND N.NOTA_ALUNO = '{$_POST['ALUNO']}' " .
                   "AND N.NOTA_ANO = '{$_POST['ANO']}' " .
                   "AND N.NOTA_BIMESTRE = '{$_POST['BIM']}' " .
                   "AND N.NOTA_ESCOLA = '{$_POST['ESCOLA']}' " .
                   "AND N.NOTA_DISCIPLINA = '{$_POST['DIS']}' ";
                 }

    $r = ibase_query($conexao, $query);
    if($r){
        
                //print '<script> history.back(); </script>';
        header("Location: ?pg=mostrar&ID={$_POST['TURMA']}&ANO={$_POST['ANO']}&ESCOLA={$_POST['ESCOLA']}&DIS={$_POST['DIS']}&BIM={$_POST['BIM']}&PROF={$_SESSION['PRO_CODIGO']}");
    }
}
        
if($_GET['funcao'] == "alterar_dl"){
    
        $query = "SELECT N.NOTA_DL FROM TABELA_NOTAS N ".
                   "WHERE N.NOTA_CODIGO = '{$_POST['COD_NOTA']}' " .
                   "AND N.NOTA_ALUNO = '{$_POST['ALUNO']}' " .
                   "AND N.NOTA_ANO = '{$_POST['ANO']}' " .
                   "AND N.NOTA_BIMESTRE = '{$_POST['BIM']}' " .
                   "AND N.NOTA_ESCOLA = '{$_POST['ESCOLA']}' " .
                   "AND N.NOTA_DISCIPLINA = '{$_POST['DIS']}' ";
        $r = ibase_query($conexao, $query);
        $DL = ibase_fetch_object($r);
        
        //PRINT $DL->NOTA_DL;
        
        if ($DL->NOTA_DL=='N'){
                $query = "UPDATE TABELA_NOTAS N SET N.NOTA_DL = 'S' ".
                   "WHERE N.NOTA_CODIGO = '{$_POST['COD_NOTA']}' " .
                   "AND N.NOTA_ALUNO = '{$_POST['ALUNO']}' " .
                   "AND N.NOTA_ANO = '{$_POST['ANO']}' " .
                   "AND N.NOTA_BIMESTRE = '{$_POST['BIM']}' " .
                   "AND N.NOTA_ESCOLA = '{$_POST['ESCOLA']}' " .
                   "AND N.NOTA_DISCIPLINA = '{$_POST['DIS']}' ";
                 }
                 
        if ($DL->NOTA_DL=='S'){
                $query = "UPDATE TABELA_NOTAS N SET N.NOTA_DL = 'N' ".
                   "WHERE N.NOTA_CODIGO = '{$_POST['COD_NOTA']}' " .
                   "AND N.NOTA_ALUNO = '{$_POST['ALUNO']}' " .
                   "AND N.NOTA_ANO = '{$_POST['ANO']}' " .
                   "AND N.NOTA_BIMESTRE = '{$_POST['BIM']}' " .
                   "AND N.NOTA_ESCOLA = '{$_POST['ESCOLA']}' " .
                   "AND N.NOTA_DISCIPLINA = '{$_POST['DIS']}' ";
                 }
        //PRINT $query;
    $r = ibase_query($conexao, $query);
    if($r){
        
                //print '<script> history.back(); </script>';
        header("Location: ?pg=mostrar&ID={$_POST['TURMA']}&ANO={$_POST['ANO']}&ESCOLA={$_POST['ESCOLA']}&DIS={$_POST['DIS']}&BIM={$_POST['BIM']}&PROF={$_SESSION['PRO_CODIGO']}");
    }
}
?>

O mesmo através de um while, gera os fields e o botão gravar para cada aluno, eu gostaria de ter um botão que pudesse salvar todos de uma vez, como ficaria a ação e o update deste botão?

Muito obrigado a todos, lembrando que uso interbase como banco.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Bom dia novamente!

Vou tentar implementar uma solução que pensei agora.

Através de um while, eu consegui passar o código de todos os alunos, eu pensei em pegar o valor do input com javascript, e jogar no mesmo post, depois fazer o update.

Acreditam que daria certo? O que acham?

Obrigado.

Link to comment
Share on other sites

  • 0
Amigo, dá um name único pra cada input de acordo com a id do aluno.

Melhor lançar como array, lançar todos os campos com o mesmo nome sendo um array como post, assim basta fazer um foreach() varendo o post do campo e atualizar os dados sem muito trabalho de ficar captando todos os campos...

Link to comment
Share on other sites

  • 0
Amigo, dá um name único pra cada input de acordo com a id do aluno.

Melhor lançar como array, lançar todos os campos com o mesmo nome sendo um array como post, assim basta fazer um foreach() varendo o post do campo e atualizar os dados sem muito trabalho de ficar captando todos os campos...

Boa tarde amigo, obrigado pela formulação.

Se não for pedir muito, gostaria de um exemploo prático, em código, de como "lançar como array"

Muito obrigado!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.8k
×
×
  • Create New...