Ir para conteúdo

POWERED BY:

Arquivado

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

iFull

[Resolvido] PHP [consultar], [editar] e [excluir]

Recommended Posts

Olá pessoal tudo bem?

To com um problema na hora de listar e editar e salvar...

Eu consigo Listar perfeitamente com os dados do banco de dados fica bunitinho e tal...

Na listagem tem 2 links em cada linha [excluir] e[ editar] os 2 funcionam ...

Mas só o [excluir] que exclui mesmo... até ai tudo bem...

Problema é na hora de mudar os produtos. Por exemplo:

Se eu listo o produto com ID 01 vai abrir a pagina de editar com as referencias do id 01

Mas se eu escolho qualquer outro produto da listagem ela coloca novamente os mesmos dados do id 01

 

E quando eu vou editar não edita da um erro...

Vou postar todos os 3 arquivos para vcs entenderem...

Este esta perfeito eu acho [:S]:

<?php
if(file_exists("init.php")) {
	require "init.php";		
} else {
	echo "Arquivo init.php nao foi encontrado";
	exit;
}

if(!function_exists("Abre_Conexao")) {
	echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
	exit;
}

Abre_Conexao();
$re = mysql_query("SELECT * FROM rcwk_metals ORDER BY idrcwk_metals;");
if(mysql_errno() != 0) {
	if(!isset($erros)) {
		echo "Erro o arquivo init.php foi auterado, nao existe $erros";
		exit;
	}
	echo $erros[mysql_errno()];
	exit;
}
?>
<table width="100%" border="1">
	<tr>
		<td>OPÇÕES</td>
        <td>ID</td>	
		<td>CODIGO</td>
		<td>DESCRICAO</td>
		<td>VALOR</td>	
	</tr>
<?php
while($l = mysql_fetch_array($re)) {
	$id          = $l["idrcwk_metals"];
	$codigo			= $l["codigo"];
	$descricao		= $l["descricao"];
	$valor			= $l["valor"];
echo "
	<tr>
		<td><a href=\"editar.php?id=$id\">[Editar]</a> <a href=\"excluir.php?id=$id\">[Excluir]</a></td>
		<td> $id</td>		
		<td> $codigo</td>
		<td> $descricao</td>
		<td>R$  $valor</td>	
	</tr>\n";
}	
@mysql_close();
?>

Agora vai o Editar.php

<?php
if(file_exists("init.php")) {
	require "init.php";		
} else {
	echo "Arquivo init.php nao foi encontrado";
	exit;
}

if(!function_exists("Abre_Conexao")) {
	echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
	exit;
}
$id = $_GET["id"];

Abre_Conexao();
$re    = mysql_query("select count(*) as total from rcwk_metals where idrcwk_metals = $id");	
$total = mysql_result($re, 0, "total");

if($total ==1 ) {
	$re    = mysql_query("SELECT * FROM rcwk_metals ORDER BY idrcwk_metals");
	$dados = mysql_fetch_array($re);		
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cadastro</title>
<style>
<!--
.textBox {
	border:1px solid gray;
	width:600px;
} 
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="salvar_edicao.php">
<input type="hidden" name="id" value="<?php echo $id; ?>" />
  <table width="515" border="0" align="center">
    <tr>
      <td width="145">ID</td>
      <td width="360"><input name="idrcwk_metals" type="text" class="textBox" id="idrcwk_metals" value="<?php echo $dados["idrcwk_metals"]; ?>" size="200" maxlength="10" /></td>
    </tr>
    <tr>
      <td>CODIGO</td>
      <td><input name="codigo" type="text" class="textBox" id="codigo" value="<?php echo $dados["codigo"]; ?>" size="200" maxlength="10" /></td>
    </tr>
    <tr>
      <td>DESCRICAO</td>
      <td><input name="descricao" type="text" class="textBox" id="descricao" value="<?php echo $dados["descricao"]; ?>" size="200" maxlength="40" /> </td>
    </tr>
    <tr>
      <td>VALOR</td>
      <td><input name="valor" type="text" class="textBox" id="valor" value="<?php echo $dados["valor"]; ?>" size="200" maxlength="10"  /></td>
    </tr>
    <tr>
      <td> </td>
      <td><input type="submit" name="Submit" value="Salvar" style="cursor:pointer;"/></td>
    </tr>
  </table>
</form>
</body>
</html>

 

Agora vem outra pagina que ta com ERRO a salvar_edicao.php

<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
//editar antes
$id				= $_POST['idrcwk_metals'];
$codigo			= $_POST['codigo'];
$descricao		= $_POST['descricao'];
$valor			= $_POST['valor'];


echo $erros[mysql_errno()];



if(file_exists("init.php")) {
	require "init.php";		
} else {
	echo "Arquivo init.php nao foi encontrado";
	exit;
}

if(!function_exists("Abre_Conexao")) {
	echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
	exit;
}

Abre_Conexao();
if(mysql_query("update from rcwk_metals 
	descricao = '$descricao',
	valor = '$valor',
	where idrcwk_metals = $id")) {

	if(mysql_affected_rows() > 1){
		echo "Registro atualizado com sucesso";
	}	

} else {
	if(mysql_errno() == 1062) {
		echo $erros[mysql_errno()];
		exit;
	} else {	
		echo "Erro nao foi possivel efetuar a edição";
		exit;
	}	
	@mysql_close();
}

}
?>
<a href="listar.php">Voltar</a>

 

Por favor não tenho um bom conhecimento em Php por isso que to pedindo ajuda...

Tudo que consegui foi adaptar tudo isso ae...

Sei que não ta difícil pra vcs + pra mim ta osso ;D

 

Te+ ae... galera...

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá iFull beleza meu chapa...

 

if(mysql_query("update from rcwk_metals

descricao = '$descricao',

valor = '$valor',

where idrcwk_metals = $id"))

Bom..não existe esse from aí, troque isto aí por isto aqui e ver se funciona

if(mysql_query("update rcwk_metals set
        descricao = '$descricao',
        valor = '$valor',
        where idrcwk_metals = $id"))
Obs.: No comando UPDATE você tem que colocar o nome da tabela (você acertou, mais sem o FROM)e setar os valores atraves do SET e no seu não tinha. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Abraços e boa sorte... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Roberto... fiz o que você disse mas ainda não mudou nada...

ta dando o mesmo erro :S

 

Erro nao foi possivel efetuar a edição
vlw..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos descobrir o motivo.. altera lá.. e diz oque retornar:

Abre_Conexao();
$sql = "UPDATE `rcwk_metals` SET 
        `descricao` = '{$descricao}',
        `valor` = '{$valor}' 
        WHERE `idrcwk_metals` = {$id}";
echo $sql;
$q = mysql_query( $sql )or die(mysql_error());

if( $q ) {

        if(mysql_affected_rows() > 1){
                echo "Registro atualizado com sucesso";
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Puts cara... mesmo erro que deu ...

sera alguma variavel?

 

olha cara...

acho que eu compliquei demais...

mas acho que tem alguma forma de fazer essas paginas ai de um jeito mais facil pq preciso editar só 3 campos de uma tabela entende?

 

é simples mas pra mim ta f*** agora vcs que manjam não deve ser tão dificil...

 

tabela [rcwk_metals]

campo [codigo]

campo [descricao]

campo [valor]

 

preciso só editar isso ai + ta complicado pra mim sinceramente...

vou até me matricular nesse curso que ta patrocinando essa area do forum pq com os meus conhecimentos basiquissimos em PHP ja até enjoei de pedir ajuda... mas preciso resolver isso ae... se alguem de boa vé e vontade de ajudar puder gastar uns 5 ou 10 minutos eu fico muito grato e não é só eu que preciso disso garanto que alguem quer aprender como se faz...

se alguema e puder ajudar mesmo muito obrigado...

aguardando ae ;D

vlw pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oque retornou do echo $sql ?

e o mysql_error? respondeu algo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

iFull Imprime o erro e posta aqui, daí podemos ver realmente qual é o problema beleza...

Ahh e não se preocupe em pedir ajudar ok...o forum é para isso...e ao te ajudarmos, tambem estaremos aprendendo ok.

Posta aí a parada...rsss http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

to conseguindo resolver em outra pagina que adaptei aki....

agora deu certo só que atualizou todos kkkkkk

ja vou postar aki 1 seg.

 

<?php
	//Conecto-me ao servidor MySQL
	$conexao = mysql_connect("localhost", "myuser", "mypass");
	//Verifico se a conexão foi bem sucedida
	if ($conexao == true) {
	//Seleciono o database
	$db = mysql_select_db("rincawes_rinca");
	//Verifico se houve erro ao selecionar o database
	if ($db == false) {
	//Imprimo a mensagem de erro
	echo "Erro na seleção do database: ".mysql_error();
	}
	}
	else {
	//Imprimo a mensagem de erro
	echo "Erro na conexão: ".mysql_error();
	}
	
	//Monto minha query
	$sql = "update rcwk_metals set 
		codigo = '$codigo',
		descricao = '$descricao',
        valor = '$valor'";
	//Executo a minha query
	$query = mysql_query($sql);
	//Verifico se o registro foi inserido com sucesso
	if ($query == true) {
		echo "Registro inserido com sucesso";
	}
	else {
		echo "Não foi possível inserir seu registro";
	}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esqueceu da condição WHERE

$sql = "update rcwk_metals set 
                codigo = '$codigo',
                descricao = '$descricao',
                valor = '$valor'  WHERE `idrcwk_metals` = $id ";
Sem ela...irá atualizar todos mesmo pois você não colocou uma condição para atualizar uma tupla especifica

Testa aí... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Roberto teste e nada...

 

Não foi possível inserir seu registro
apareceu isso aki como erro

quer que eu poste os outros scripts das outras paginas?

pra você entender certinho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, essas variáveis estão vindo da onde ? De um formulário ?? Ou por parâmetros ??

Cade o $_POST delas ? Ou $_GET ??

O campo código no seu banco é Varchar ? ou Integer ?

Se for Varchar, você coloca aspas no Update, se for Integer sem aspas.

O nome dos campos estão certos ? Os valores das variáveis estão vindo mesmo ?

Poste o erro que está dando.

 

$sql = "update rcwk_metals set codigo = $codigo, descricao = '$descricao', valor = '$valor' where idrcwk_metals = $id";

Compartilhar este post


Link para o post
Compartilhar em outros sites

ae galerinha...

vlw ae pela ajuda espero que eu resolva isso ;D

olha ae esta o codigo da pagina

 

LISTA.PHP

<?php
//Conecto-me ao servidor MySQL
$conexao = mysql_connect("localhost", "xxxxx", "xxxxx");
//Verifico se a conexão foi bem sucedida
if ($conexao == true) {
//Seleciono o database
$db = mysql_select_db("rincawes_rinca");
//Verifico se houve erro ao selecionar o database
if ($db == false) {
//Imprimo a mensagem de erro
echo "Erro na seleção do database: ".mysql_error();
}
}
else {
//Imprimo a mensagem de erro
echo "Erro na conexão: ".mysql_error();
}
 
//Monto minha query
$sql = "SELECT descricao, valor FROM rcwk_metals";
//Executo a minha query
$query = mysql_query($sql);
if ($query <> false) {
while($dados = mysql_fetch_array($query)) {
echo "<li><strong>".$dados["descricao"]."</strong> <a href='atualiza.php?id=".$dados["codigo"]."'>Editar</a> <a href='valida.php?id=".$dados["valor"]."'>Excluir</a></li>";
}
}
?>

 

 

 

Atualiza.php

<?php
			include "include/topo.php";
			include "include/menu.php";
		?>
        <h2>Atualiza Conteúdo</h2>
        <form action="valida.php" method="post" id="form">
        	<label for="descricao">DESCRIÇÃO: 
        	  <input name="descricao" type="text" id="descricao" " size="40" maxlength="40" />
        	</label>
        <label for="valor">VALOR: <input name="valor" cols="10" rows="10" id="valor"></input></label>
        <label for="codigo">Codigo:<input name="codigo" type="text" id="codigo"  size="10" maxlength="10" /></label>
        
            <button type="submit">Cadastrar</button>
        </form>
será que é pq os inputs nao puxam nada? :S

 

 

 

 

e por ultimo a pagina

VALIDA.PHP

 

<?php
	//Conecto-me ao servidor MySQL
	$conexao = mysql_connect("localhost", "xxxxx", "xxxxx");
	//Verifico se a conexão foi bem sucedida
	if ($conexao == true) {
	//Seleciono o database
	$db = mysql_select_db("rincawes_rinca");
	//Verifico se houve erro ao selecionar o database
	if ($db == false) {
	//Imprimo a mensagem de erro
	echo "Erro na seleção do database: ".mysql_error();
	}
	}
	else {
	//Imprimo a mensagem de erro
	echo "Erro na conexão: ".mysql_error();
	}
	
	//Monto minha query
	$sql ="update rcwk_metals set 
                codigo = '$codigo',
                descricao = '$descricao',
                valor = '$valor'  WHERE `idrcwk_metals` = $dados ";
	//Executo a minha query
	$query = mysql_query($sql);
	//Verifico se o registro foi inserido com sucesso
	if ($query == true) {
		echo "Registro inserido com sucesso";
	}
	else {
		echo "erro ao atualizar";
	}
?>

vlw ae..

 

e o erro que continua é o erro "erro ao atualizar" configurado por padrão...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em um de seus posts anteriores lá no arquivo salvar_edicao.php você pegaria os valores para serem alterados

//editar antes

$id = $_POST['idrcwk_metals'];

$codigo = $_POST['codigo'];

$descricao = $_POST['descricao'];

$valor = $_POST['valor'];

 

nesse seu ultimo post, não tem ele... então...onde você está recebendo esses valores para serem atualizados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu mudei lembra uns posts acima que disse que adaptei outro..

esses 3 ultimos do ultimo post

to usando somente os 3 eles funcionan + nao ta salvando ta errando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

por favor algum moderador que possa colocar todos topicos meus das ultimas 3 ou 2 paginas como RESOLVIDO?

 

achei um script que funcionou perfeitamente quando eu terminar de edita-lo eu vou compartilhar com o pessoal aqui Obrigado a todos que me deram atenção e até em brevezinho...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É melhor que você poste em cada um deles a solução (mesmo que não seja agora) para dar como resolvido, porque, apesar de você ter resolvido, a solução não está no tópico.

 

Carlos Eduardo

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.