Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

swift

[Resolvido] Editar registro trazido por select

Recommended Posts

Opa galera, gostaria d euma dica para editar um registro, estouo utiliazando o form abaixo:

 

<?php

$busca = $_POST['busca'];

require('conecta.php');

$con1 = "SELECT * FROM usuarios WHERE nome LIKE '%$busca%'";
$con11 = mysql_query($con1);
$con111 = mysql_num_rows($con11);

if($con111>0)
{	
	for($i=0;$i<$con111;$i++)
	{
		$user = mysql_fetch_array($con11);
?>
	 <form action="alterar.php" method="GET">
		<span class="altera">NOME:........</span>	<?php echo $user['nome']; ?> <br />
		<span class="altera">SEXO:..........</span>	<?php echo $user['sexo']; ?> <br />
		<span class="altera">USUARIO:...</span>	    <?php echo $user['usuario'];?><br />
		<span class="altera">SENHA:.......</span>	<?php echo $user['senha'];?><br />
																		
      <input type="submit" name="alterar" value="alterar" /><br /><br />
      </form>
      
 <?php  
		if(isset($_GET['alterar']))
		{
			echo $user['nome'];
		}
				
	
	
	}// Fecha if
}//Fecha for
?>

Eu gostaria que ao clicar no botao Alterar eu alterasse o registro do usuário do indíce que o FOR esta, e nao do último registro que é como acontece, como faço isso da maneira mais enxuta? com Javascript? pensei em por um button no form e um if fazendo um INSERT se o button estiver setado,mas não sei se essa seria a melhor maneira. enfim, aguardo sugestões!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem sim

 

 

Então teste este script:

 

<?php
$busca = $_POST['busca'];
require('conecta.php');
$con1 = "SELECT * FROM usuarios WHERE nome LIKE '%$busca%'";
$con11 = mysql_query($con1);
$con111 = mysql_num_rows($con11);
if($con111>0){
	for($i=0;$i<$con111;$i++){                
		$user = mysql_fetch_array($con11);
		?>         
		<form action="alterar.php" method="POST">   
        	<!--CAMPO ACRESCENTADO-->
        	<input type="hidden" name="id_user" value="<?=$user['id_tebela']?>">             
            <!--CAMPO ACRESCENTADO-->
			<span class="altera">NOME:........</span><input type="text" name="nome" value="<?=$user['nome']?>"> <br />
			<span class="altera">SEXO:..........</span><input type="text" name="sexo" value="<?=$user['sexo']?>"> <br />
			<span class="altera">USUARIO:...</span><input type="text" name="usuario" value="<?=$user['usuario']?>"><br />
			<span class="altera">SENHA:.......</span><input type="text" name="senha" value="<?=$user['senha']?>"><br />                                                                                                                                                      
			<input type="submit" name="alterar" value="alterar" /><br /><br />
		</form>       
		<?php
		if(isset($_GET['alterar'])){                        
			echo $user['nome'];                
		}
	}// Fecha for
}//Fecha if
?>

Agora...no arquivo alterar.php tente

 

<?php
if(isset($_POST['id_user'])){
	mysql_query("update usuarios Set `nome`='".$_POST['nome']."',`sexo`='".$_POST['sexo']."',`usuario`='".$_POST['usuario']."',`senha`='".$_POST['senha']."' Where id_user='".$_POST['id_user']."'")or die('erro');
}
?>

Testa ai..qualquer coisa posta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma coisa:

<form action="alterar.php" method="POST">   

Esta linha está dentro do FOR. Abra o formulário antes do FOR.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então cara a miha intenção é por o UPDATE neste mesmo documento, ali aonde se econtra o

 

if(isset($_GET['alterar']))
{                        
      echo $user['nome'];                
}

eu quero que quando setado la, eu insira aqui, por isso o teste do echo, para ver em qual indice ele da o echo, ainda nao funcionou com o hidden, como nao conheço muito de javascript acredito que deve haver uma maneira de fazer isso por javascript antes de chegar no php, só q nao sei.

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

if($_GET['acao'] == "alterar")

{

// aqui você faz um select de novo, colocando como condição o ID que você ta pegando como parametro no Link, ou seja

$sql "Select * from tabela where id = $_GET[id]";

}

?>

 

<?php

$busca = $_POST['busca'];

require('conecta.php');

$con1 = "SELECT * FROM usuarios WHERE nome LIKE '%$busca%'";

$con11 = mysql_query($con1);

$con111 = mysql_num_rows($con11);

if($con111 > 0)

{

echo '<form action="" method="POST">';

 

for($i=0;$i<$con111;$i++)

{

$user = mysql_fetch_array($con11);

?>

<span class="altera">NOME:........</span>

<input type="text" name="nome" value="<?=$user['nome']?>"><a href="?acao=alterar&id=<?=$user['id']?>"> Alterar </a> <br />

<span class="altera">SEXO:..........</span>

<input type="text" name="sexo" value="<?=$user['sexo']?>"><a href="?acao=alterar"<?=$user['id']?>> Alterar </a> <br />

<span class="altera">USUARIO:...</span>

<input type="text" name="usuario" value="<?=$user['usuario']?>"><a href="?acao=alterar"<?=$user['id']?>> Alterar </a><br />

<span class="altera">SENHA:.......</span>

<input type="text" name="senha" value="<?=$user['senha']?>"><a href="?acao=alterar"<?=$user['id']?>> Alterar </a><br />

}

<?php

 

echo '</form>';

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu qeuro exibir todos usuarios cadastrados om um botao no fim de cada cadastro, para que seja possível alterar aquele determinado cadastro, por isso o FORM dentro do FOR

Compartilhar este post


Link para o post
Compartilhar em outros sites

então cara a miha intenção é por o UPDATE neste mesmo documento, ali aonde se econtra o

 

if(isset($_GET['alterar']))
{                        
      echo $user['nome'];                
}

eu quero que quando setado la, eu insira aqui, por isso o teste do echo, para ver em qual indice ele da o echo, ainda nao funcionou com o hidden, como nao conheço muito de javascript acredito que deve haver uma maneira de fazer isso por javascript antes de chegar no php, só q nao sei.

 

Eu me complique entao no entendimento do que você deseja. Por favor, exclareça-me uma coisa. Você deseja exibir os dados primeiro, despois de exibidos, quer uma opção para alterar os registros mostrado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, depois de exibidos vou implementar um botao que traga os dados dentro dos textbox do form de cadastro e insira o que for digitado no form naquele indice.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dee,ainda não... vamo lá, dei uma mudada acho que vai ficar melhor explicado agora.

 

 

Esse vai listar os usuarios, com o Submit na frente de cada cadastro

 


<?php

$busca = $_POST['busca'];

require('conecta.php');

$con1 = "SELECT * FROM usuarios WHERE nome LIKE '%$busca%'";
$con11 = mysql_query($con1);
$con111 = mysql_num_rows($con11);

if($con111>0)
{	
	
echo'<form action="editar.php" method="GET">';
	
	for($i=0;$i<$con111;$i++)
	{
		$user = mysql_fetch_array($con11);

?>
		ID -> <?php echo $user['id'];?><br /><br />
        
        <span class="altera">NOME:........</span>	<?php echo $user['nome']; ?> <br />
		<span class="altera">SEXO:..........</span>	<?php echo $user['sexo']; ?> <br />
		<span class="altera">USUARIO:...</span>	    <?php echo $user['usuario'];?><br />
		<span class="altera">SENHA:.......</span>	<?php echo $user['senha'];?><br />
        <br/>																
        
        <input type="submit" name="editar" value="editar" />
        <br /><br />
		
        </form>
      
 <?php  
	}// Fecha if
}//Fecha for
else
	echo"Nenhum Usuário Encontrado!<br />";
?>


clicando no submit ele envia para este form que traz os valores dentro do form e realiza o UPDATE

 

<?php

$nome = $_GET['nome']; // Já tentei pegar pelo array $user tbm... neste caso teria
$sexo = $_GET['sexo'];
$usuario = $_GET['usuario'];
$senha = $_GET['senha'];
$id = $_GET['id'];

require('conecta.php');

?>
  	<form action="editar.php" method="GET">
    
    Nome<br />
	<input type="text" name="nome"size ="50" value="<?php echo $nome;?>"/><br />
	Sexo<br />
	<select name ="sexo">
	<option value="F">Feminino </option>
	<option value="M">Masculino </option>
    </select><br />
	Usuário<br />
	<input type="text" name="usuario" value="<?php echo $user['usuario']; ?>"/><br />
	Senha<br />
	<input type="text" name="senha" value="<?php echo $user['senha']; ?>"/><br /><br />
   
   	<input type="button" name="confirmar" value="confirmar" /> 

	</form>

<?php

if(isset($_GET['confirmar']))
{
	echo "setado";
	
	$con2 ="UPDATE usuarios SET nome='$nome' sexo='$sexo' usuario='$usuario' senha='$senha WHERE id= '$id'";
	$con22 = mysql_query($con2);
	$con222 = mysql_affected_rows();
	
	if($con222 > 0)
		echo"Cadastro Efetuado com Sucesso!";
	else
		echo"Cadastro nao efetuado";
}
?>

O que não consigo é trazer os valores para o form do editar.php, entendeu?

 

tentei já trazer do array para uma variável ($var = $user['var']) antes de passar para este form, mas da na mesma

 

acho que agora consegui explica melhor, e acho que só será possível com uma variável de sessão, ou não?

 

Obrigado a Todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize campos hidden, formulários só funcionam se você usar tags de formulário! input, select..

 

<span class="altera">NOME:........</span>
      <input type="hidden" name="nome" value="<?php echo $user['nome']; ?>" /><?php echo $user['nome']; ?> <br />
<span class="altera">SEXO:..........</span>
      <input type="hidden" name="sexo" value="<?php echo $user['sexo']; ?>" /><?php echo $user['sexo']; ?> <br />
<span class="altera">USUARIO:...</span>
      <input type="hidden" name="usuario" value="<?php echo $user['usuario']; ?>" /><?php echo $user['usuario'];?><br />
<span class="altera">SENHA:.......</span>
      <input type="hidden" name="senha" value="<?php echo $user['senha']; ?>" /><?php echo $user['senha'];?><br />
isso já lhe foi sugerido alguns posts atrás..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.