Ir para conteúdo

POWERED BY:

Arquivado

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

Henrique Fleury

Problema com UPDATE

Recommended Posts

Ai pessoal eu tenho um arquivo chamado incluir_segmento que e para o admin incluir os segmentos em que a empresa do usuario faz parte para depois aparecer na pesquisa

 

Para vcs verem o q e!!!!

 

incluir_segmento.php

 

<title>Agora Tecnologia</title>
<?php
include ("conexao.php");
@ini_set('display_errors', '1');
error_reporting(E_ALL);

if($_SERVER["REQUEST_METHOD"] == "POST") {
$segmento = $_POST["segmento2"];
}

if(mysql_query("UPDATE INTO tb_clientes (id_segmento) VALUES ('$segmento')",$sql)){
if(mysql_affected_rows() == 1){
	echo "Segmento incluido com sucesso!<br />";
	header ("location:segmento.php");
	}
} else {
	if(mysql_error() == 1062) {
	echo $erros[mysql_errno()];
	exit;
} else {
	echo "Error, não foi possivel incluir segmento";
	exit;
	}
	@mysql_close();
}
header("location:segmento.php");
?>

Aonde esta meu erro?

 

So aproveita e pergunta ai galera vcs entrando no link ai de cima vao ver que esta aparecendo somente o F M e o numero do id do segmento, esse erro vem do que do select q eu dei? pq era para aparecer Fleury e Mecanico e ao inves do id do segmento o nome do segmento ehhehe...

Se souber ai pq dessa loucura me falem ai por favor

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não eh: UPDATE INTO

 

e sim: UPDATE tabela SET campo = valor:

 

Ficaria assim:

 

mysql_query("UPDATE tb_clientes SET id_segmento = $segmento") or die(mysql_error());

Troque por essa linha acima e veja se retorna algum erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sintaxe correta UPDATE seria essa:

if(mysql_query("UPDATE INTO `tb_clientes` SET `id_segmento` = '".$segmento."'",$sql)){

Ou essa:

if(mysql_query("UPDATE INTO `tb_clientes` SET `id_segmento` = '{$segmento}'",$sql)){

 

O formato (colunas) values (valores) é recomendado só para INSERTs ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa bom dia.

 

Intao vlw d++ pelo explicação do UPDATE

 

te fala eu coloquei

mysql_query("UPDATE tb_clientes SET id_segmento = $segmento") or die(mysql_error());

 

e deu esse erro:

 

Parse error: syntax error, unexpected ';' in /hsphere/local/home/hfc000/teste.naweb.ws/incluir_segmento.php on line 11

 

Ai eu fui la e troquei pelo o q o tiutalk falo:

 

if(mysql_query("UPDATE INTO `tb_clientes` SET `id_segmento` = '".$segmento."'",$sql)){

 

Ai nao deu nenhum erro mas eu mando incluiu ele faz como se estivese incluido mas qndo eu abro o phpmyadmin e vejo na tabela ele n incluiu nada.

 

Olha o campo id_segmento na tabela de clientes tem q ser tbm um INT certo? pq la eu vo pega apenas o id_segmento q esta na tabela segmento certo?

Intao ele n esta incluindo e vcs tbm podem ver que esta aparecendo o numedo do id_segmento ao inves da palavra que o id representa como eu faco essa transformacao?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha cara, até onde eu sei não se usa UPDATE INTO não.

 

que eu me lembre era:

 

UPDATE TABLE SET campo="SEU_VALOR" WHERE codigo="codigo" [mero exemplo]

 

Esse update into não existe não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha cara, até onde eu sei não se usa UPDATE INTO não.

 

que eu me lembre era:

 

UPDATE TABLE SET campo="SEU_VALOR" WHERE codigo="codigo" [mero exemplo]

 

Esse update into não existe não.

Intao eu concertei isso de acordo com as respostas que os companheiros colocaram agora esta assim:

 

incluir_segmento.php

 

<title>Agora Tecnologia</title>
<?php
include ("conexao.php");
@ini_set('display_errors', '1');
error_reporting(E_ALL);

if($_SERVER["REQUEST_METHOD"] == "POST") {
$segmento = $_POST["segmento2"];
}

if(mysql_query("UPDATE tb_clientes SET id_segmento = $segmento",$sql)){
if(mysql_affected_rows() == 1){
	echo "Segmento incluido com sucesso!<br />";
	header ("location:segmento.php");
	}

	@mysql_close();	
}
header("location:segmento.php");
?>

O problema agora e o seguinte ele esta incluindo sim o q eu seleciono mas o problema e q ele esta incluindo em todos os usuarios da tabela nao so aquele q esta mostrando na tabela, e ele tbm esta substituindo o segmento que ja estava ao inves de acrescentar.

Como arrumo esse erros e no proprio UPDATE? Eu teria que expecificar pelo id certo, ele teria q pegar o id do cliente que esta la na tabela e por ele incluir certo? Mas como faco isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como arrumo esse erros e no proprio UPDATE? Eu teria que expecificar pelo id certo, ele teria q pegar o id do cliente que esta la na tabela e por ele incluir certo? Mas como faco isso?

Sim, exatamente isso ai.

Basta fazer um:

WHERE `id` = algumaCoisa

no próprio UPDATE mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

So intende a programacao que eu terei que faze.

 

1 eu tenho q cria uma variavel aonde eu vo guarda o id do cliente o qual esta mostrando na tabela certo?

2 eu terei que no WHERE coloca o campo id_user que e ta tabela tb_clientes e depois do = coloca a variavel a qual eu guardei o id do user certo?

 

O id do user eu vo captura com um $_GET? e como eu faco para se tiver mais q 1 usuario aparcendo na tabela ele guarde todos e consiga associar qual include eu estou dando e para quem vai? com o comando funcao?

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode capturar pelo post tambem.

 

é so criar um input type hidden pra ele. conhece?

 

Ou voce pode jogar numa session esse ID, que eu acho que seria mais correto.

 

O exemplo abaixo esta como se resgatasse por POST.

 

<title>Agora Tecnologia</title>
<?php
include ("conexao.php");
ini_set('display_errors', '1');
error_reporting(E_ALL);

if($_SERVER["REQUEST_METHOD"] == "POST") {
$segmento = $_POST["segmento2"];

$id_cliente = $_POST['id_cliente'];

}



if(mysql_query("UPDATE tb_clientes SET id_segmento = '".$segmento."' WHERE id_cliente = '".$id_cliente."' ") or die(mysql_error())){  


if(mysql_affected_rows() == 1){
	echo "Segmento incluido com sucesso!<br />";
	header ("location:segmento.php");
	}

	mysql_close();	
}
header("location:segmento.php");
?>

// o "$sql" como segundo parametro na mysql_query() é opcional e mais usado quando se usa mais de uma conexao, que nao é seu caso.

 

// mysql_query($str) or die(mysql_error()): Caso tenha erro ele retorna o erro do mysql. o que explica a situação do amigo tiutalk nao retornar erro e nao inserir na tab. nao retornou pq nao teve o mysql_error() no script.

 

// Evite usar "@" nas funções. nos dois casos que voce utilizou o erro seria permanente. não tendo necessidade do uso.

 

Outro detalhe importante, se voce estiver num servidor com PHP 5.xx essa linha retornará erro.

 

echo "Segmento incluido com sucesso!<br />";
	header ("location:segmento.php");

Troque por

 

echo "<p>Segmento incluido com sucesso!</p>";
	echo "<meta http-equiv="refresh" content="0;url=http://seusite.com/segmento.php">";

Compartilhar este post


Link para o post
Compartilhar em outros sites

JuLIOOXX

 

Entao retorno esse erro:

 

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /hsphere/local/home/hfc000/teste.naweb.ws/incluir_segmento.php on line 21

 

A so fala eu quero que ele acrescente e nao substitua o q ja tinha. Pq com o codigo de antes ele estava substituindo e pior ainda estava substituindo de todos mas acho q com o codigo que você fez pegando o id do cliente ele ja vai resolve isso certo? ira acrescenta apenas no usuario x certo?

 

Ou vlw d+++++ ta salvando meu emprego ehehehhehe...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai o problema q estava dando era que

echo "<p>Segmento incluido com sucesso!</p>";
	echo "<meta http-equiv="refresh" content="0;url=http://seusite.com/segmento.php">";

nessa linha o php estava lendo que depois do // era um comentario ai eu voltei para o header ai ele deu esse erro:

 

Notice: Undefined index: id_cliente in /hsphere/local/home/hfc000/teste.naweb.ws/incluir_segmento.php on line 10 Unknown column 'id_cliente' in 'where clause

 

Essa linha e a:

 

$id_cliente = $_POST['id_cliente'];

Acho que esta faltando eu expecifica da onde que ele tem q tira esse id_cliente nao seria? pq isso tem q sair do bd certo?

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.