nknk 3 Denunciar post Postado Julho 20, 2009 Onde está o erro neste código ? Não consigo atualizar a tabela. tab.php require("conexao.php"); $sql=mysql_query("SELECT * FROM tab");?> <p>tabela teste</p> <form id="form1" name="form1" method="post" action="mudtab.php"> <?php while ($mostra = mysql_fetch_assoc($sql)) { ?> id <input name="id[]" type="text" id="id" value="<?php echo $mostra["id"]; ?>" readonly="true" /> camp1 <input name="camp1[]" type="text" id="camp1" value="<?php echo $mostra["camp1"]; ?>" /> camp2 <input name="camp2[]" type="text" id="camp2" value="<?php echo $mostra["camp2"]; ?>" /> camp3 <input name="camp3[]" type="text" id="camp3" value="<?php echo $mostra["camp3"]; ?>" /><br> <? }?><input name="" type="submit" /> </form> mudtab.php foreach($_POST as $key=>$value){ require("conexao.php"); $query="UPDATE tab SET camp1='".$_POST["camp1"][$key]."', camp2='".$_POST["camp2"][$key]."', camp3='".$_POST["camp3"][$key]."' WHERE id='".$_POST["id"][$key]."'"; if(mysql_query($query)){echo"Id ".$_POST["id"][$key]." atualizado<br> ";}else{echo mysql_error();} } Compartilhar este post Link para o post Compartilhar em outros sites
Leandro de Jesus 5 Denunciar post Postado Julho 20, 2009 Acho que seria atualizar vários campos e não vários registros... Faça isso Tira [] dos nomes dos campos e deixe a parte de atualizar sem o foreach $query="UPDATE tab SET camp1='".$_POST["camp1"]."', camp2='".$_POST["camp2"]."', camp3='".$_POST["camp3"]."' WHERE id='".$_POST["id"]."'"; Compartilhar este post Link para o post Compartilhar em outros sites
nknk 3 Denunciar post Postado Julho 20, 2009 Acho que seria atualizar vários campos e não vários registros... Faça isso Tira [] dos nomes dos campos e deixe a parte de atualizar sem o foreach $query="UPDATE tab SET camp1='".$_POST["camp1"]."', camp2='".$_POST["camp2"]."', camp3='".$_POST["camp3"]."' WHERE id='".$_POST["id"]."'"; Não pois eu desejo atualizar vários linhas da tabela (registro), por isso o uso da array[] e foreach. id camp1 camp2 camp3 1 abc1 abc2 abc3 2 def1 def2 def3 3 ghi1 ghi2 ghi3 ... Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 20, 2009 O problema tá no teu foreach... Acho que vai ter que usar o for... require("conexao.php"); for ($x = 0; $x < count($_POST['id']); $x++){ $query="UPDATE tab SET camp1='".$_POST['camp1'][$x]."', camp2='".$_POST["camp2"][$x]."', camp3='".$_POST["camp3"][$x]."' WHERE id='".$_POST["id"][$x]."'"; if(mysql_query($query)){echo"Id ".$_POST["id"][$x]." atualizado<br> ";}else{echo mysql_error();} } Se assim não resolver, dê uma olhada na forma que vem do seu formulário, colocando isto no início do código. echo '<pre>'; print_r($_POST); Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
nknk 3 Denunciar post Postado Julho 21, 2009 Resolveu sim, finalmente! Muito Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites