faguinho 0 Denunciar post Postado Junho 17, 2015 Pessoal, estou precisando de uma ajuda. Tenho o seguinte código: echo "<tr> <form method='post' action='cadastrar.php'> <td bgcolor=#FFE4C4>" . $dados['id'] . "</td> <td bgcolor=#FFE4C4>" . $dados['nome'] . "</td> <td bgcolor=#FFE4C4 align='center'>" . $dados['lista'] . "</td> <td bgcolor=White><center> <input type='text' name='nome2' value='Seu nome...' /> <input type='submit' value='Assinar' /> </form> </center></td> </tr>"; Preciso pegar o valor que ele lista na variável $dados['id'] e conseguir passar no update do código abaixo. $nome = $_POST['nome2']; // Recendo o que foi digitado no campo nome2 do formulário. $id = $_POST['' . $dados['id'] . '']; // Recendo o que foi digitado no campo nome do formulário. $query = mysql_query("UPDATE chadoarthur SET lista='$nome' WHERE id='$id'") or die(mysql_error()); Porém com esse meu código, ele não ta fazendo o update pois não consegue pegar o valor de ID. Alguém tem alguma sugestão? Ele vem de uma query Select. Segue abaixo o código todo. // Monta a consulta MySQL para a busca $sql = mysql_query ("SELECT id, nome, lista FROM chadoarthur ORDER BY id ASC"); //echo "$num_rows Rows\n" $count = mysql_num_rows($sql); // conta quantos registros encontrados com a nossa especificação if ($count == 0) { echo "<center>Nenhum resultado!</center>"; } else { // senão if ($count == 1) { echo "<center>1 resultado encontrado!</center>"; } // se houver mais de um resultado diz quantos resultados existem while ($dados = mysql_fetch_array($sql)) { // enquanto houverem resultados... echo "<center><table cellspacing='0' border='1'> <tr> <td bgcolor=DarkRed><center><font color='White'><b>ID</b></font></center></td> <td bgcolor=DarkRed><center><font color='White'><b>Nome</b></font></center></td> <td bgcolor=DarkRed><center><font color='White'><b>Assinado Por</b></font></center></td> <td bgcolor=DarkRed><center><font color='White'><b>Assinar Lista</b></font></center></td> </tr>"; /*Enquanto houver dados na tabela para serem mostrados será executado tudo que esta dentro do while */ while($dados=mysql_fetch_array($sql)) /*Escreve cada linha da tabela dados[RequestUrl] dados[EventCode] */ echo "<tr> <form method='post' action='cadastrar.php'> <td bgcolor=#FFE4C4>" . $dados['id'] . "</td> <td bgcolor=#FFE4C4>" . $dados['nome'] . "</td> <td bgcolor=#FFE4C4 align='center'>" . $dados['lista'] . "</td> <td bgcolor=White><center> <input type='text' name='nome2' value='Seu nome...' /> <input type='submit' value='Assinar' /> </form> </center></td> </tr>"; } } echo "</table></center>"; /*fecha a tabela após término de impressão das linhas*/ Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Junho 17, 2015 Você está querendo pegar os campos dinamicamente, mas numa lista de itens, não há como saber exatamente qual id é. O problema não está no banco, mas no recebimento, não? Se for isso, o problema está no PHP, na interpretação. Coloque o id num campo de tipo "hidden", ou então coloque o nome como sendo parte de um vetor ("nome2[" . $dados['id'] . "]"), desta forma também funciona. Depois no PHP tu faz assim: $nome = array(); $id = array(); foreach ( $_POST[nome2] as $id_form => $value_form ) { id[] = $id_form; // não joguei nada dentro dos colchetes para trabalhar como auto_increment: 0, 1, 2, 3, ... (sempre começa do zero) $nome[] = $value_form; } Desta forma, mesmo que sejam informados mais itens, irá tratar o recebimento de cada um. Pode ver este post do William Bruno, me ajudou muito a resolver um problema semelhante. Aqui a parte 1. Compartilhar este post Link para o post Compartilhar em outros sites
faguinho 0 Denunciar post Postado Junho 17, 2015 AMigo, Na verdade os IDs já existem. Estou fazendo um SELECT no meu banco, ele lista o id e o nome do produto, ao lado, eu quero utilizar um UPDATE para preencher um campo de lista. Segue o link de exemplo. www.chadoarthur.com/index2.php Para fazer o UPDATE na linha correta, ele precisa levar o ID justamente para não atualizar todas as linhas. Isso que eu não to conseguindo passar no código php. Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Junho 18, 2015 É que no código que você criou, como existe um formulário para cada item, e o ID não é passado pelo formulário, somente o nome2, não há uma outra forma mais confiável, afinal, como identificar qual o ID a ser tratado? Qual foi o resultado do teste com a solução que sugeri? Compartilhar este post Link para o post Compartilhar em outros sites