Somario 0 Denunciar post Postado Maio 18, 2011 Ajudem-me to precisando muito de uma luz. Tenho este código <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CDF Colégio e Curso</title> </head> <body> <?php $ano; $ensino; $turma; $turno; //efetua conexão com banco de dados $conexao = mysql_connect("localhost","cdfznco_admin","liberar") or die ("Não foi possível conectar"); //seleciona banco de dados $bd = mysql_select_db("cdfznco_bd", $conexao) or die ("Nao foi possível selecionar banco"); //seleciona campos e filtra $sql = "SELECT * "; $sql = $sql . "FROM dados_do_aluno WHERE dados_do_aluno.ano = '$ano' AND (ensino LIKE '$ensino' AND turma LIKE '$turma' AND turno LIKE '$turno') ORDER BY `nome`" ; //faz consulta no bd e tb selecionada $rs = mysql_query($sql, $conexao) or die ("Não foi possível efetuar consulta"); //o comando while gera todos os registros while ($linha = mysql_fetch_array ($rs)) { //questões $res_cons_codigo = $linha["codigo"]; $res_cons_nome = $linha["nome"]; $res_cons_ano = $linha["ano"]; $res_cons_ensino = $linha["ensino"]; $res_cons_turma = $linha["turma"]; $res_cons_turno = $linha["turno"]; ?> <form method="POST" action="<?php echo $PHP_SELF;?>"> <table width="975" align="center"> <tr> <td align="left"><input name="codigo[]" type="text" id="codigo" value="<? echo $res_cons_codigo; ?>"> </td> <td align="left"><input name="nome[]" type="text" id="nome" value="<? echo $res_cons_nome; ?>" size="65"></td> <td align="left"><input name="ano[]" type="text" id="ano" value="<? echo $res_cons_ano; ?>"></td> <td align="left"><input name="ensino[]" type="text" id="ano2" value="<? echo $res_cons_ensino; ?>"></td> <td align="left"><input name="turma[]" type="text" id="turma" value="<? echo $res_cons_turma; ?>"></td> <td align="center"><input name="turno[]" type="text" id="turno" value="<? echo $res_cons_turno; ?>"></td> </tr> </table> <div align="center"> <?php } ?> <br> <input type="submit" value=" OK "> </div> </form> [b][size="5"]este trecho vi neste forum e adicionei[/size][/b] <?php if(isset($_POST)){ $field = $_POST; $count = count($field[codigo]); for($i = 0; $i < $count; $i++){ $up .= "UPDATE dados_do_aluno SET codigo = {$field['codigo'][$i]}, nome = {$field['nome'][$i]}, ano = {$field['ano'][$i]}, ensino = {$field['ensino'][$i]}, turma = {$field['turma'][$i]}, turno = {$field['turno'][$i]} \n"; } echo "<pre>"; print_r($up); } ?> </body> </html> Mas não estou conseguido o resultado esperado ele mostra que o dado foi alterado, mas não altera no bd. Clique aqui para ver como está. OBS tenho pouquissimo conhecimento em php e mysql o que aprendi foi por aqui nestes foruns, desde já agradeço imensamente as orientações. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Rosario 4 Denunciar post Postado Maio 18, 2011 os names dos inputs estão incorretos. Tente assim <td align="left"><input name="codigo" type="text" id="codigo" value="<? echo $res_cons_codigo; ?>"> </td> <td align="left"><input name="nome" type="text" id="nome" value="<? echo $res_cons_nome; ?>" size="65"></td> <td align="left"><input name="ano" type="text" id="ano" value="<? echo $res_cons_ano; ?>"></td> <td align="left"><input name="ensino" type="text" id="ano2" value="<? echo $res_cons_ensino; ?>"></td> <td align="left"><input name="turma" type="text" id="turma" value="<? echo $res_cons_turma; ?>"></td> <td align="center"><input name="turno" type="text" id="turno" value="<? echo $res_cons_turno; ?>"></td> Compartilhar este post Link para o post Compartilhar em outros sites
Somario 0 Denunciar post Postado Maio 18, 2011 Na verdade acho que está correto pois da forma como fiz ele atualizaria todos os registro da seleção e da forma que você indicou apenas um, mas, ainda assim vejo o resultado na tela, mais não no BD. Obrigado Rafael você clicou no link onde tem o exemplo? Veja que da forma que fiz ele mostra UPDATE dados_do_aluno SET codigo = 201110166, nome = ADRIELE ALVES DE ANDRADE, ano = 6, ensino = FUNDAMENTAL, turma = A, turno = M UPDATE dados_do_aluno SET codigo = 201010095, nome = ALANY KELLY ARAUJO PEREIRA, ano = 6, ensino = FUNDAMENTAL, turma = A, turno = M UPDATE dados_do_aluno SET codigo = 201110277, nome = ALEXCILANIA DA SILVA LIMEIRA, ano = 6, ensino = FUNDAMENTAL, turma = A, turno = M até o último registro, quer ver pode ir no campo com os nomes dos alunos e deixar só o primeiro nome por exemplo ele mostrara o resultado assim UPDATE dados_do_aluno SET codigo = 201110166, nome = ADRIELE, ano = 6, ensino = FUNDAMENTAL, turma = A, turno = M UPDATE dados_do_aluno SET codigo = 201010095, nome = ALANY, ano = 6, ensino = FUNDAMENTAL, turma = A, turno = M UPDATE dados_do_aluno SET codigo = 201110277, nome = ALEXCILANIA, ano = 6, ensino = FUNDAMENTAL, turma = A, turno = M mas lá o banco de dados nada foi atualizado, ou seja se eu retornar a fazer minha consulta para ver o resultado da atualização na verdade ele não tem atualizado nada. Compartilhar este post Link para o post Compartilhar em outros sites
Justin Bieber 0 Denunciar post Postado Maio 19, 2011 Ele está montando o Update errado. UPDATE dados_do_aluno SET codigo = 201110166, nome = ADRIELE, ano = 6, ensino = FUNDAMENTAL, turma = A, turno = M Tudo que for TEXT, VARCHAR, CHAR, NCHAR, tem que estar dentro de aspas simples. '' UPDATE dados_do_aluno SET codigo = 201110166, nome = 'ADRIELE', ano = 6, ensino = 'FUNDAMENTAL', turma = 'A', turno = 'M' Para resolver o problema, basta você adicionar as aspas simples no quer for String, número (INT, INTEGER) não precisa por aspas. <?php if(isset($_POST)){ $field = $_POST; $count = count($field[codigo]); for($i = 0; $i < $count; $i++){ $up .= "UPDATE dados_do_aluno SET codigo = $field[codigo][$i]}, nome = '$field[nome][$i]', ano = $field[ano][$i], ensino = '$field[ensino][$i]', turma = '$field[turma][$i]', turno = '$field[turno][$i]'"; mysql_query($up); } } ?> O que é isso ? Deleta essas linhas, desnecessário. <?php $ano; $ensino; $turma; $turno; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Somario 0 Denunciar post Postado Maio 19, 2011 certo, deletei era de um outro modelo que precisava. Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo.Sp 0 Denunciar post Postado Maio 19, 2011 coloque um WHERE no UPDATE onde vai ser o ID de cada aluno! Compartilhar este post Link para o post Compartilhar em outros sites
Somario 0 Denunciar post Postado Maio 19, 2011 Nada ainda, vejam como ficou o resultado com as alterações no BD nada alterado. Bom e o seguinte não sei se tem haver, mas... Estou Usando vertrigo na escola para disponibilizar o site na net pois aqui tem um ip fixo. Praticamente não alterei nada da instalação, vi no tópico acho que do Ricardo.SP algo sobre globais ficar off fiz isso e se quer apareceu o resultado da pesquisa inicial então voltei a deixar on. Não sei se vocês chegaram a ver mais essa pesquisa vem pa pagina index.php com o metodo post para index2.php onde tem esse código que usa <form method="POST" action="<?php echo $PHP_SELF;?>"> Que quando clico no botão envia para ela mesma certo? será que eu teria que enviar para uma outra página para funcionar? desculpem se estiver falando baboseira, mas não tenho bom conhecimento nem em php nem em mysql, nunca pude fazer um curso, tudo que faço no site é com pesquisa e ajuda de pessoas de bom coração como vocês. a propósito ficou assim: <?php if(isset($_POST)){ $field = $_POST; $count = count($field[codigo]); for($i = 0; $i < $count; $i++){ $up .= "UPDATE dados_do_aluno SET codigo = {$field['codigo'][$i]}, nome = '{$field['nome'][$i]}', ano = '{$field['ano'][$i]}', ensino = '{$field['ensino'][$i]}', turma = '{$field['turma'][$i]}', turno = '{$field['turno'][$i]}' WHERE codigo = {$field['codigo'][$i]} \n"; } mysql_query($up); echo "<pre>"; print_r($up); } ?> só tem codigo que é INT que é a matricula do aluno Compartilhar este post Link para o post Compartilhar em outros sites
Justin Bieber 0 Denunciar post Postado Maio 19, 2011 Tem que estar dentro do FOR mysql_query($up); Tira aquele .= e deixa só = Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo.Sp 0 Denunciar post Postado Maio 19, 2011 tente algo assim: if(isset($_POST)){ $count = count($_POST['codigo']); $i = 0; while ($i < $count) { $codigo = $_POST['codigo'][$i]; $nome = $_POST['nome'][$i]; $ano = $_POST['ano'][$i]; $ensino = $_POST['ensino'][$i]; $turma = $_POST['turma'][$i]; $turno = $_POST['turno'][$i]; $query = "UPDATE dados_do_aluno SET `nome` = '$nome', `ano` = '$ano', `ensino` = '$ensino', `turma` = '$turma', `turno` = '$turno' WHERE `codigo` = '$codigo'"; if(@mysql_query($query)){ print = "Alterado com Sucesso"; } ++$i; } } Compartilhar este post Link para o post Compartilhar em outros sites
Justin Bieber 0 Denunciar post Postado Maio 19, 2011 Dica: if(@mysql_query($query)){ Tirem esses @ da frente das funções MySql, deixa lento a execução da query e esconde o erro caso aconteça. Isso é um mau hábito. Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo.Sp 0 Denunciar post Postado Maio 19, 2011 Vlw Justin Compartilhar este post Link para o post Compartilhar em outros sites
Somario 0 Denunciar post Postado Maio 19, 2011 GRRAAANNNNNNNNNNNNDE GURU'S deu certissimo, MUUUIIIITO Obrigado, como posso deixar o script para que as pessoas possam usar, sou novo no forum. Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo.Sp 0 Denunciar post Postado Maio 19, 2011 GRRAAANNNNNNNNNNNNDE GURU'S deu certissimo, MUUUIIIITO Obrigado, como posso deixar o script para que as pessoas possam usar, sou novo no forum. agora mim arruma uma bolsa ai no CDF da ZN, q eu moro aqui no Panatins rsrsrsrsrs Brincadeiraaa Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Julho 14, 2012 Senhores, pesquisando na internet encontrei esse post. Estou tentando fazer como o colega acima, atualizar vários campos de uma só vez, mas não estou conseguindo. Com a esperança de algum ajudar estou postando meu código para ver se alguem ajuda a mostrar onde estou errando. if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) { $count = count($_POST['ID_Texto']); $i = 0; while ($i < $count) { $original = $_POST['original'][$i]; $texto = $_POST['texto'][$i]; $ID_Texto = $_POST['ID_Texto'][$i]; $updateSQL = sprintf("UPDATE textos SET original=%s, texto=%s WHERE ID_Texto=%s", GetSQLValueString($original, "text"), GetSQLValueString($texto, "text"), GetSQLValueString($ID_Texto, "int")); if(mysql_query($updateSQL)){ print "Alterado com Sucesso"; } ++$i; } mysql_select_db($database_conexao, $conexao); $Result1 = mysql_query($updateSQL, $conexao) or die(mysql_error()); $updateGoTo = "textos.php"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $updateGoTo)); } <?php do { ?> <textarea name="original[]" cols="30" rows="2"><?php echo $row_rs['original']; ?></textarea> <textarea name="texto[]" cols="30" rows="2"><?php echo $row_rs['texto']; ?></textarea> <input name="ID_Texto[]" type="hidden" id="ID_Texto" value="<?php echo $row_rs['ID_Texto']; ?>" /> <input type="submit" name="botao" id="botao" value="Salvar" /> <?php } while ($row_rs = mysql_fetch_assoc($rs)); ?> Compartilhar este post Link para o post Compartilhar em outros sites