Ir para conteúdo

POWERED BY:

Arquivado

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

Jonatã Cioni

[Resolvido] comando UPDATE sql não funciona

Recommended Posts

bom galera... mais um pepino... o comando UPDATE naum esta funcionando(ele esta quase no final do código)

 

-- --------------------------------------------------------

--
-- Estrutura da tabela `pedidos`
--

CREATE TABLE IF NOT EXISTS `pedidos` (
 `id_pedido` int(11) NOT NULL AUTO_INCREMENT,
 `id_cliente_pedido` int(11) NOT NULL,
 `pedido_cliente` longtext NOT NULL,
 `status_pedido` varchar(20) NOT NULL,
 `n_rastreamento` varchar(50) NOT NULL,
 PRIMARY KEY (`id_pedido`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1

 

<?php
$id_pedido = $_GET['id_pedido'];
$sql_mostra_pedido = mysql_query("SELECT clientes.id_cliente, clientes.nome, clientes.email, pedidos.id_pedido, pedidos.id_cliente_pedido, pedidos.pedido_cliente, pedidos.status_pedido, pedidos.n_rastreamento FROM clientes LEFT JOIN pedidos ON pedidos.id_cliente_pedido = clientes.id_cliente WHERE pedidos.id_pedido = '$id_pedido'")or die(mysql_error());

//lista clientes e pedidos
while($lista_pedidos = mysql_fetch_array($sql_mostra_pedido)){
$id_pedido_lista = $id_pedido;
$nome_cliente = $lista_pedidos['nome'];
$email_cliente = $lista_pedidos['email'];
$pedido_cliente = $lista_pedidos['pedido_cliente'];
$status_pedido = $lista_pedidos['status_pedido'];
$rastreamento_pedido = $lista_pedidos['n_rastreamento'];
}
?>
<p> </p>
<div id="cadastrodeproduto" align="center">
	<form id="form1" name="form1" method="post" enctype="multipart/form-data" action="?acao=alterar&id=<?php echo "$id_pedido";?>">
		<table width="503" border="1">
			<tr>
				<td colspan="2" class="style20" align="center">Detalhes do Pedido</td>
				</tr>
			<tr>
				<td width="144" class="style18" align="right">Id do pedido:</td>
				<td width="340"><?php echo "$id_pedido_lista";?></td>
			</tr>
			<tr>
				<td class="style18" align="right">Nome do Cliente:</td>
				<td width="340"><?php echo utf8_encode("$nome_cliente");?></td>
			</tr>
			<tr>
				<td class="style18" align="right">E-mail do Cliente:</td>
				<td width="340"><?php echo "$email_cliente";?></td>
			</tr>
			<tr>
				<td class="style18" align="right">Pedido Completo:</td>
				<td width="340"><textarea cols="40" rows="7" readonly="readonly"><?php echo "$pedido_cliente";?></textarea></td>

			</tr>
			<tr>
				<td height="21" align="right" class="style18">Status:</td>
				<td><input type="text" name="status" id="status" value="<?php echo "$status_pedido";?>"/></td>
			</tr>
			<tr>
				<td class="style18" align="right">Nº de Rastreamento:</td>
				<td><input type="text" name="n_rastreamento" id="n_rastreamento" value="<?php echo "$rastreamento_pedido";?>" size="30"/></td>
			</tr>
		</table>
		<p> </p>
		<input class="send" type="submit" name="gravar" value="Gravar" />
	</form>
<?php
if($_GET['acao'] == "alterar"){
$id_pedido = $_GET['id_pedido'];
$status_pedido_atualizar = $_POST['status'];
$rastreamento_pedido_atualizar = $_POST['n_rastreamento'];

$atualiza_pedido = mysql_query("UPDATE pedidos SET pedidos.status_pedido='$status_pedido_atualizar', pedidos.n_rastreamento='$rastreamento_pedido_atualizar' WHERE pedidos.id_pedido='$id_pedido'") or die (mysql_error());

if($atualiza_pedido == true){
	echo ("Pedido alterado com sucesso!");
	header("Location: administracao_pedidos.php");
}else{
	echo ("Ocorreu algum erro ao alterar o pedido!");
}
}
?>
</div>

 

jah revisei o código inteiro... testei... coloquei OR DIE depois do codigo MySql, naum da erro nenhum... e no ultimo if/else, da pedido atualizado com sucesso... mais naum atualiza... alguém ai consegue descobrir pq?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque

$atualiza_pedido = mysql_query("UPDATE pedidos SET pedidos.status_pedido='$status_pedido_atualizar', pedidos.n_rastreamento='$rastreamento_pedido_atualizar' WHERE pedidos.id_pedido='$id_pedido'") or die (mysql_error());

 

Por

 

$atualiza_pedido = mysql_query("UPDATE `pedidos` SET `pedidos`.`status_pedido`='$status_pedido_atualizar', `pedidos`.`n_rastreamento`='$rastreamento_pedido_atualizar' WHERE `pedidos`.`id_pedido`='$id_pedido'") or die (mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque

$atualiza_pedido = mysql_query("UPDATE pedidos SET pedidos.status_pedido='$status_pedido_atualizar', pedidos.n_rastreamento='$rastreamento_pedido_atualizar' WHERE pedidos.id_pedido='$id_pedido'") or die (mysql_error());

 

Por

 

$atualiza_pedido = mysql_query("UPDATE `pedidos` SET `pedidos`.`status_pedido`='$status_pedido_atualizar', `pedidos`.`n_rastreamento`='$rastreamento_pedido_atualizar' WHERE `pedidos`.`id_pedido`='$id_pedido'") or die (mysql_error());

 

troquei e continua a msma coisa, brother... não atualiza de jeito nenhum...

 

nem assim:

$atualiza_pedido = mysql_query("UPDATE `pedidos` SET `pedidos`.`status_pedido`='$status_pedido_atualizar', `pedidos`.`n_rastreamento`='$rastreamento_pedido_atualizar' WHERE `pedidos`.`id_pedido`='$id_pedido'") or die (mysql_error());

 

nem assim:

$atualiza_pedido = mysql_query("UPDATE `pedidos` SET `status_pedido`='$status_pedido_atualizar', `n_rastreamento`='$rastreamento_pedido_atualizar' WHERE `id_pedido`='$id_pedido'") or die (mysql_error());

 

nem assim:

$atualiza_pedido = mysql_query("UPDATE pedidos SET status_pedido='$status_pedido_atualizar', n_rastreamento='$rastreamento_pedido_atualizar' WHERE id_pedido='$id_pedido'") or die (mysql_error());

 

e nem do jeito que coloquei no codigo...

 

será que eh algum outro tipo de erro?

 

detelhe... mostrar os pedidos, mostra direitinhu, sem erro nenhum... o erro eh na horas de editar os pedidos e gravar as alterações msmo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem , tem bancos que não aceita aspas simples .. então você tem que fazer um addslashes , isso se você tiver editando o pedido com algum tipo de aspas em alguma palavra tipo 'pedido , 'pedido' .. o add slashes manda as aspas com barra invertida forçando a insersão daquelas aspas , ja tentou isso ? :lol: , ja tive problema parecido com este .. e minha solução foi essa , mais eu 'acredito' que se não tivese inserindo porcausa das aspas o mysql_error ia mandar uma warning avisando que deu syntax error entende ? , so por perguntar , você tem um if ali , falando se a ação for alterar ele executa oque esta entre as chaves .. você tem certeza que está passando esse parametro na URL ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você não informar as mensagens de erro, dificulta para gente. Pois não vamos saber para onde olhar.

 

o or die() retornou algo?

habilite todas as mensagens:

http://forum.imasters.com.br/topic/375800-orientacoes-para-uma-boa-participacao/

 

Ainda assim, faça um echo da query:

$sql = "UPDATE `pedidos` SET `pedidos`.`status_pedido`='$status_pedido_atualizar', 
`pedidos`.`n_rastreamento`='$rastreamento_pedido_atualizar' 
WHERE `pedidos`.`id_pedido`=$id_pedido";

echo $sql;

$atualiza_pedido = mysql_query( $sql ) or die (mysql_error());

informe oque aparecer na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

informe oque aparecer na tela.

 

 

desse modo exato, só coloquei as variaveis correspondentes, deu esse erro:

 

UPDATE `pedidos` SET `pedidos`.`status_pedido`='Em analisesdfaf', `pedidos`.`n_rastreamento`='Nenhumasdfadsf' WHERE `pedidos`.`id_pedido`=You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

e oque eu te falei sobre o addslashes .. use ele nas variaveis que você recebe ..

Tente assim

$sql = "UPDATE `pedidos` SET `pedidos`.`status_pedido`='".addslashes($status_pedido_atualizar)."',`pedidos`.`n_rastreamento`='".addslashes($rastreamento_pedido_atualizar)."'
WHERE `pedidos`.`id_pedido`='".addslashes($id_pedido)."';

Compartilhar este post


Link para o post
Compartilhar em outros sites

e oque eu te falei sobre o addslashes .. use ele nas variaveis que você recebe ..

Tente assim

$sql = "UPDATE `pedidos` SET `pedidos`.`status_pedido`='".addslashes($status_pedido_atualizar)."',`pedidos`.`n_rastreamento`='".addslashes($rastreamento_pedido_atualizar)."'
WHERE `pedidos`.`id_pedido`='".addslashes($id_pedido)."';

 

deste modo nem pega o valor das variaveis...

 

eu vou postar os arquivos pra vcs darem uma analisada melhor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://www.4shared.com/file/dIEYH6-G/WorldWideGames.html

 

estão todos os arquivos do site ai...

 

só com o login de adm da pra acessar o link de adm de pedidos, lah que tah o erro... no link ver pedido, que da pra atualizar o status e colocar o numero de rastreamento..

 

só com esse login que da:

 

l: lobomau1984

s: 111111

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara que bagunça de código, bem vamos lá:

 

 

ver_pedido.php

 

linha 34 +-

 	date_default_timezone_set('America/Sao_Paulo');

 

linha 112 +-

$id_pedido = isset($_GET['id_pedido']) ?  $_GET['id_pedido'] : $_GET['id'];

 

linha 162 +-

if( isset($_GET['acao']) && ( $_GET['acao'] == "alterar")) {
$id_pedido = $_GET['id'];
$atualiza_status = $_POST['status'];
$atualiza_rastreamento = $_POST['n_rastreamento'];

$sql = "UPDATE pedidos SET status_pedido='". $atualiza_status ."', n_rastreamento='". $atualiza_rastreamento ."' WHERE id_pedido='".addslashes($id_pedido)."'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

rsrsrsrsrs;... eh que código organizado naum muito bem meu forte... vou tentar organizar melhor tudo isso...rsrs

 

mais nem do seu jeito... continua não atualizando... eu disponibilizei todos os arquivos do site pra quem quiser analizar... pelo que eu to vendo... naum tah pegando a id do pedido... quando eu coloco um "echo $sql" ele me retorna os dados digitados nos dois campos, mais a id do pedido não...

Compartilhar este post


Link para o post
Compartilhar em outros sites

okay.. olhe isto:

 

&id=<?php echo "$id_pedido";?>">

no action do form, apenas modifique para:

&id_pedido=<?php echo $id_pedido;?>">

Compartilhar este post


Link para o post
Compartilhar em outros sites

okay.. olhe isto:

 

&id=<?php echo "$id_pedido";?>">

no action do form, apenas modifique para:

&id_pedido=<?php echo $id_pedido;?>">

 

vlw brother... era isso msmo... brigadão... erro besta... mais dificil de encontrar...

 

vlw msmo...

 

RESOLVIDO!!!!!!!!!!!...

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.