Ir para conteúdo
Fórum CódigoFonte.net
Entre para seguir isso  
pcjardim

Problema na Atualização no Banco de Dados

Recommended Posts

Estou fazendo uma lista de presença onde leio no Banco o nome dos alunos jogo num formulário com um input na frente de cada um para colocar "p" ou "f", são vários, trabalho com paginação. Faço a leitura até o fim da tabela sem problema algum porém, depois de colocar "f" ou "p" não consigo gravar novamente. Para ler faço um laço "while" leio e vou mostrando de acordo com a quantidade de pessoas na tabela, mas para grava não faço idéia de como fazer uma vez que geralmente mandamos inserir no BD o conteúdo de determinadas variáves e nesse caso eu não sei qtos pessoas serão, só qdo faço a leitura e q sei qtos matriculdas tem (uma vez que a cada semana pode aumentar ou diminuir o nº de alunos) e no modo na qual estou acostumado ja definimos as variáves ou qtas variáves teram antes de gravar. Gostaria que alguém me auxiliasse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você ta usando o name dos inputs tipo array? name="presenca[]" . assim?

Se sim, então, pra cada 1 desses. poe um hidden com o código do registro que você vai alterar no banco.

<input type="hidden" name="cod[]" value="<? echo $codigo ?>" />

Aí na pagina que for alterar você vai pegando o valor dos dois juntos.

Foi isso que entendi, se não é isso, dá uma explicada melhor.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade eu me expressei mal, eu leio na tabela pessoas, jogo na tela e adiciono um campo (input) para preencher com "p" ou "f" e ai quero gravar os tados que li na tabela pessoa + o input em outra tabela!!!

meu código é esse:

chamada.php

// Informações da query. No caso, "SELECT * FROM pessoas "  
            $campos_query = "*";  
            $final_query  = "FROM pessoas";
        
            // Declaração da pagina inicial  
            $pagina = $_GET["pagina"];  
            if($pagina == "") 
            {      
                $pagina = "1";  
            } 
        
            // Maximo de registros por pagina  
            $maximo = 13;
        
            // Calculando o registro inicial  
            $inicio = $pagina - 1;  
            $inicio = $maximo * $inicio;
        
            // Conta os resultados no total da minha query  
            $strCount = "SELECT COUNT(*) AS 'num_registros' $final_query";  
            $query    = mysql_query($strCount);  
            $row      = mysql_fetch_array($query);  
            $total    = $row["num_registros"];  
        
            if($total<=0) 
            {      
                echo "<center>Nenhum registro encontrado.</center>";  
            } 
            else 
            {      
                $strQuery = "SELECT $campos_query $final_query LIMIT $inicio,$maximo";      
                $query    = mysql_query($strQuery);
            
                while($row = mysql_fetch_array($query)) 
                {?>
                    <tr>
                        <td align="heigth" width="44%"><?          
                            echo $row["nome"]." ";?>
                            <input type="hidden" name="nome" type="text" option value="<? echo $row[nome];?>" size="2">
                        </td>
                        <td align="center" width="12%">
                                    <input name="presenca" type="text" option value="" size="2">
                        </td><?
                        $newData = date("d/m/Y");
                        if (($row["aniversario"] >= SomarData(date("d/m/Y"), 6, 0, 0)) and  ($row["aniversario"] <= $newData))
                        { ?>         
                            <td align="center" width="50%" class="destaque"><?
                                echo $row["aniversario"]."<BR>";
                        }
                        else
                            {?>                                 
                                <td align="center" width="50%"><?                                
                                echo $row["aniversario"]."<BR>";
                             } ?>
                            <input type="hidden" name="aniversario" type="text" option value="<? echo $row[aniversario];?>" size="2">
                        </td>
                    </tr><?      
                }?>
                </table>                
                <table align="center" border="1" width="60%" cellspacing="0" cellpadding="5" bgcolor="#EAEBEF" bordercolorlight="#FFFFFF" bordercolordark="#E3E5EA">
                      <tr>                        
                        <td align="center"><input type="submit" value="Gravar"></td>                
                    <tr>                
                  </table>
                </form>
                <table align="center" border="0" width="60%" cellspacing="0" cellpadding="5" bgcolor="#EAEBEF" bordercolorlight="#FFFFFF" bordercolordark="#E3E5EA">
                    <tr>
                        <td align="right">
                            <h2>
                                <?
                            
                                // Calculando pagina anterior      
                                $menos = $pagina - 1;  
                            
                                // Calculando pagina posterior      
                                $mais = $pagina + 1;
                            
                                $pgs = ceil($total / $maximo);      
                                if($pgs > 1 ) 
                                {          
                                    // Mostragem de pagina          
                                    if($menos > 0) 
                                    {             
                                        echo "<a href=\"?pagina=$menos&\" class='texto_paginacao'>anterior</a> ";          
                                    }          
                                    // Listando as paginas          
                                    for($i=1;$i <= $pgs;$i++) 
                                    {              
                                        if($i != $pagina) 
                                        {                 
                                            echo "  <a href=\"?pagina=".($i)."\" class='texto_paginacao'>$i</a>";              
                                        } 
                                        else 
                                        {                  
                                            echo "  <strong lass='texto_paginacao_pgatual'>".$i."</strong>";              
                                        }          
                                    }
                                    if($mais <= $pgs) 
                                    {             
                                        echo "   <a href=\"?pagina=$mais\" class='texto_paginacao'>próxima</a>";
                                    }?> 
                        </td>
                    </tr>       
                </table><?              
                }  
            }
mando gravar em: chamada_grava.php
if (getenv("REQUEST_METHOD") == "POST") 
        {
    
        include("conexao.php");
        
        $nome=$_POST['nome'];
        $presenca=$_POST['presenca'];
        $aniversario=$_POST['aniversario'];
            
        $query = mysql_query
            ( 
                "INSERT INTO chamada (id, nome, presenca) 
                VALUES               ('','$nome','$presenca')"
            );           
            
        $query1 = "SELECT * FROM pessoas ORDER BY nome";
        $resultado1 = mysql_query($query1);
        while ($linha1 = mysql_fetch_array($resultado1)) 
        {
            $linha1['id'];
            $linha1['nome'];
            $linha1['presenca'];        
            $linha1['aniversario'];
        }    
    
        $query2 = "SELECT * FROM classes WHERE id='$classe'";    
        $resultado2 = mysql_query($query2);
        while ($linha2 = mysql_fetch_array($resultado2)) 
        {
            $l=$linha2['classe'];
        }?><br>
        <center span class="style2">Chamada gravada com sucesso!<br><br>
        <table  align="center" border="1" width="60%" cellspacing="0" cellpadding="5" bgcolor="#EAEBEF" bordercolorlight="#FFFFFF" bordercolordark="#E3E5EA">
                <tr>
                    <td align="center" width="44%" class="style1">
                        NOME
                    </td>                    
                    <td align="center" width="12%" class="style1">
                        PRESENÇA
                    </td>
                    <td align="center" class="style1">
                        CLASSE
                    </td>
                </tr>
            </table>
            <?    
        echo '
            <table align="center" border="1" width="60%" cellspacing="0" cellpadding="5" bgcolor="#EAEBEF" bordercolorlight="#FFFFFF" bordercolordark="#E3E5EA">
                <span class="style1">
                <tr>
                    <td align="center" width="44%" class="style1">
                        '.$nome.'<br>
                    </td>
                    <td align="center" width="12%" class="style1">
                        '.$presenca.'<br>
                    </td>            
                    <td align="center" class="style1">
                    '.$aniversario.'<br>
                </td>
                </tr>
                </span>
            </table>';
           
    }

ele esta gravando, porém eu só consigo gravar o último!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

se vc está dizendo tipo ir preenchendo ir pra próxima página e continuar preenchendo e talz...

um boa ideia seria criar um tipo pre-post salvandos os dados em uma session multidimensional

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho por exemplo uma tabela com cadastro de pessoas "pessoas", leio tudo e mostro na tela com um input na frente de cada p/ colocar presença ou falta, depois de preencher quero enviar (gravar) todos de uma só vez, porém eu nunca sei quantas pessos teriam, uma vez q a qualquer momento eu posso matricular uma nova pessoa (acrescentar) na tablea "pessoas" ou excluir. Quando é um formulário como o cadastro de pessoas eu sei qtos campos tem, e passo do form p/ outro arquivo através do método POST e tudo bem, mas nesse caso não sei como fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

×
×
  • Criar Novo...