Ir para conteúdo

POWERED BY:

Arquivado

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

edsonantolini

[Resolvido] Update

Recommended Posts

Ola, a todos.

 

Pessoal estou com um problema. quero fazer update no banco Sql ... não estou conseguindo. Somente do ultimo registro.

 

exemplo:

 

id | cliente | pedido | nota | ov

01| GM | 12 | 10 |50

02| FIAT |60 |15 |60

03| VW |100 |30 |30

04

 

Esse é o relatorio que eu fiz e me mostra na tela. os campos Nota e OV são inputbox para mim fazer alteração.

 

Quando faço update so faz do ultimo registro que selecionei..

 

de que forma faço os update de uma vez so.. valeu vou colocar os codigos ai...

 

Form selecionado com os clientes

<?php
include('conne.inc');
$nome_alterar = $_POST["selecao"];
?>

<html>
<head>
<title> Curso Completo de PHP - www.mjailton.com.br </title>
<link rel="STYLESHEET" type="text/css" href="estilorelatorio.css"> 
</head>
<body>
<div class="tabContainer" id="lista">
<div class="scrollContainer">
<table width = "100%" border = "0px" cellspacing = "0" align = "center" cellpadding = "0" bordercolor = "#000000">
<tr>
	<td> 
		<form name = "formcliente" method = "post" action="alterar.php">
		<table width = "100%" border = "0px" cellspacing = "0" cellpadding = "0">
			<tr align = "center"><td colspan="10"> Edição de Cadastro de Cargas</td></tr>
			
			<tr> 
						
						<th class="tabela-relatorio0"><span>Data Separação</span></th>
						<th class="tabela-relatorio1"><span>Cliente</span></th>
						<th class="tabela-relatorio2"><span>Pedido</span></th>
						<th class="tabela-relatorio3"><span>Codigo</span></th>
						<th class="tabela-relatorio4"><span>Qtd Peças</span></th>
						<th class="tabela-relatorio5"><span>Form Carga</span></th>
						<th class="tabela-relatorio6"><span>Placa</span></th>
						<th class="tabela-relatorio7"><span>OV</span></th>
						<th class="tabela-relatorio8"><span>Carga NF</span></th>						
			</tr>
			
			<table border="0px" width = "100%">
			<tbody>
			<?php	
				$query = "SELECT * FROM NILPEL_HIST_PROG_CARGAS WHERE COD_CLIENTE ='$nome_alterar'";
				$res= odbc_exec($conn,$query); 
				$n = odbc_num_rows($res) or die ("Não foi possível selecionar o Banco de dados.");	
				while($dados=odbc_fetch_array($res)){
				$data=substr($dados['DT_SEPARACAO'], 8, 2)."/".substr($dados['DT_SEPARACAO'], 5, 2)."/".substr($dados['DT_SEPARACAO'], 0, 4)."".substr($dados['DT_SEPARACAO'], 10, 9);
			?>
				<tr>
					<input type ="hidden" name="codigo" size = "100" value ="<?php echo $dados[CODIGO]?>">
					<td class="tabela-relatorio0"><span><?php echo $data;?></span></td>
					<td class="tabela-relatorio1"><span><?php echo $dados['COD_CLIENTE'];?></span></td>
					<td class="tabela-relatorio2"><span><?php echo $dados['PEDIDO'];?></span></td>
					<td class="tabela-relatorio3"><span><?php echo $dados['COD_ITEM'];?></span></td>
					<td class="tabela-relatorio4"><span><?php echo $dados['QTD_PECAS'];?></span></td>
					<td class="tabela-relatorio5"><span><?php echo $dados['FORM_CARGA'];?></span></td>
					<td class="tabela-relatorio6"><span><?php echo $dados['PLACA'];?></span></td>
<td class="tabela-relatorio7"><span><input type="text" name="ov" size="10" value="<?php echo $dados['OV'];?>"></span></td>
<td class="tabela-relatorio8"><span><input type="text" name="carga_nf" size="7" value="<?php echo $dados['CARGA_NF'];?>"></span></td>
				</tr>
				<?php
					}
				?>
			
			</tbody>
		</table>
			
			<tr>
				
				<td colspan="10" align="center">	
				<input name="enviar" type = "submit" value = "Salvar"> 
				<input name="cancelar" type = "reset" value = "cancelar"> 
				</td>				
			</tr>
			
		</table>
		</form>	
	
	</td>
</tr>
</table>
</div>
</div>
</body>
</html>

Esse form é onde recebe as dados para fazer update.

 

<?php
include('conne.inc');

$codigo 	= $_POST["codigo"];
$ov	= $_POST["ov"];
$carga_nf 	= $_POST["carga_nf"];

echo $codigo;
echo "<br>";
echo $ov;
echo "<br>";
echo $carga_nf;


				$sql ="UPDATE NILPEL_HIST_PROG_CARGAS SET CARGA_NF= '$carga_nf', OV='$ov' WHERE CODIGO = '$codigo' ";
	$res= odbc_exec($conn,$sql) or die("Houve um erro na gravação dos dados, verifique os valores passados");

	/*$linhas = mysql_num_rows($query);
	//header("location:relatorio.php?link=1"); */
	
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que ta dando ? só um campo é atualizado ? ou nenhum dos 2 ?

Sim os dois campos esta sento atualizado... mais somente do ultimo registro que selecionei.

 

id | cliente | pedido | nota | ov

01| GM | 12 | 10 |50

02| FIAT |60 |15 |60

03| VW |100 |30 |30 somente esses dois campos que atualizado caso eu mude o valor, lembrando que esses dois ultimos campos é text assim posso alterar os dados..

 

eu quero que altere todos,,, tipo tenho 5 clientes. Tenho 5 linha ... mudo o valor de todos os clientes as 5 linha e faz update no banco... mais so ta fazendo o update da ultima linha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê um

print_r($_POST);
e veja se os dados estão passando.

Sim esta passando, uso esse codigo para visualizar.

 

$codigo = $_POST["codigo"];

$ov = $_POST["ov"];

$carga_nf = $_POST["carga_nf"];

 

echo $codigo; aqui me mostra o ultimo codigo

echo "<br>";

echo $ov; aqui me mostra a ultima Ordem de Venda

echo "<br>";

echo $carga_nf;. aqqui me mostra a ultima Nota..

 

Eu quero que me mostre todas..

 

e faz o update de todas as linhas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tomb, acho que isso mesmo.. mais nem sei como chegar fazer isso.

 

<?php

include('conne.inc');

 

$codigo = $_POST["codigo"];

$ov = $_POST["ov"];

$carga_nf = $_POST["carga_nf"];

 

 

 

 

$sql ="UPDATE NILPEL_HIST_PROG_CARGAS SET CARGA_NF= '$carga_nf', OV='$ov' WHERE CODIGO = '$codigo' ";

$res= odbc_exec($conn,$sql) or die("Houve um erro na gravação dos dados, verifique os valores passados");

 

/*$linhas = mysql_num_rows($query);

//header("location:relatorio.php?link=1"); */

 

?>

Acho que esse html name deveria ser Array né.

 

<input type ="hidden" name="codigo" size = "100" value ="<?php echo $codigo ?>">

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo... você tem uma pagina que exibe esses cadastros a uma certa quantidade, e cada cadastro especifico desse tem o campo NOTA e OV para atualizar nao e isso ?

 

e você quer atualizar todos os cadastros com 1 click só no submit correto ? se não for isso por favor me corrija :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo tenho.

forme onde me tras todos os cadastro..

 

tipo vou no form1 seleciono o cliente

 

No form 2 me tras todos os clientes, tipo ele me tras 5 clientes . vai me traser 5 linhas cada linha vai ter um campo OV e NOTA.

 

modifico esses campos com os valores correto.. e faz um update na linha correspondendo o codigo. ( chave primaria )

 

no form 3 faço Update.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tomb, acho que isso mesmo.. mais nem sei como chegar fazer isso.

 

 

<?php
include('conne.inc');

$codigo = $_POST["codigo"];
$ov = $_POST["ov"];
$carga_nf = $_POST["carga_nf"];




$sql ="UPDATE NILPEL_HIST_PROG_CARGAS SET CARGA_NF= '$carga_nf', OV='$ov' WHERE CODIGO = '$codigo' ";
$res= odbc_exec($conn,$sql) or die("Houve um erro na gravação dos dados, verifique os valores passados");

/*$linhas = mysql_num_rows($query);
//header("location:relatorio.php?link=1"); */

?>

Acho que esse html name deveria ser Array né.

 

 

<input type ="hidden" name="codigo" size = "100" value ="<?php echo $codigo ?>">

sim... tu vai ter que criar uma array ou um laço for, o que for melhor pra esse caso, acho seja for...

o html tu deixa assim :

<input type ="hidden" name="codigo[]" size = "100" value ="<?php echo $codigo ?>">

no php tu tenta :

 

<?php
include('conne.inc');

$codigo = $_POST["codigo"];
$ov = $_POST["ov"];
$carga_nf = $_POST["carga_nf"];

for($i=0; $i< sizeof($codigo); $i++)
  {

   $sql ="UPDATE NILPEL_HIST_PROG_CARGAS SET CARGA_NF= '$carga_nf', OV='$ov' WHERE CODIGO = '$codigo[$i]' ";
   $res= odbc_exec($conn,$sql) or die("Houve um erro na gravação dos dados, verifique os valores passados");


   }
?>

tenta e comenta se pegou ou deu algum erro ^^"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tomb, esse codigo ate funciono.

 

So que esta atualizando todos os campos com o valor do ultimo registro.

 

Exemplo:

 

trago do banco assim

id | cliente | pedido | nota | ov

01| GM | 12 | 10 |50

02| FIAT |60 |15 |60

03| VW |100 |30 |40

 

 

caso faço o update dessa forma que você me sugiriu

 

id | cliente | pedido | nota | ov

01| GM | 12 | 30 |50

02| FIAT |60 |30 |40

03| VW |100 |30 |40

 

 

você entendeu. esse codigo atualizo todos os campos, só que com o ultimo numero ou linha que eu tenho no meu forme.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, então teremos que colocar ele dentro do laço for :

 

 

<?php
include('conne.inc');

for($i=0; $i< sizeof($codigo); $i++)
  {

$codigo = $_POST["codigo"][$i];
$ov = $_POST["ov"][$i];
$carga_nf = $_POST["carga_nf"][$i];


   $sql ="UPDATE NILPEL_HIST_PROG_CARGAS SET CARGA_NF= '$carga_nf', OV='$ov' WHERE CODIGO = '$codigo[$i]' ";
   $res= odbc_exec($conn,$sql) or die("Houve um erro na gravação dos dados, verifique os valores passados");


   }
?>

boa sorte... espero que dessa vez possa te ajudar ^^

ve se fala com alguem ai por hoje, to saindo do trampo e agora forum so amanha :D

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse tambem não deu certo, atualiza todas as linhas com o valor da ultima linha...

 

eu acho que tem que pegar o valor do array e fazer update com o valor..

 

tipo na minha array tenho os IDs 12 13 14

 

e fazer os update conforme os dados do array...

você poderia me falar como eu faço para pegar os dados de uma array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem... quer dizer mal :P eu errei ali ... x_X

... então faça do mesmo jeito só que utilizando o nome do campo OV e NOTA como o do campo CODIGO :

 

como nao sei como ta o campo, explifico assim :

<input type ="text" name="ov[]">

<input type ="text" name="nota[]">

<?php
include('conne.inc');

for($i=0; $i< sizeof($codigo); $i++)
  {

$codigo = $_POST["codigo"][$i];
$ov = $_POST["ov"][$i];
$carga_nf = $_POST["carga_nf"][$i];


   $sql ="UPDATE NILPEL_HIST_PROG_CARGAS SET CARGA_NF= '$carga_nf', OV='$ov' WHERE CODIGO = '$codigo[$i]' ";
   $res= odbc_exec($conn,$sql) or die("Houve um erro na gravação dos dados, verifique os valores passados");


   }
?>

será que agora funciona ? :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

tambem não deu, ta pegando a ultimo resultado e replicando para todoas as de mais na hora do update.

 

 

to tendando fazer algo parecido com FOREACH

$codigo = $_POST["codigo"];

$ov = $_POST["ov"];

$carga_nf = $_POST["carga_nf"];

$n = $_POST["n"];

 

// codigo

echo $ov[0];

echo "<br>";

echo $ov[1];

echo "<br>";

echo $ov[2];

echo "<br>";

echo $ov[3];

 

echo "<br>";

$codigo1 = $codigo[0];

 

echo $codigo1;

 

/*foreach ($codigo as $value) {

echo "cod: $value<br />\n";

}

echo "<br>";

 

foreach ($carga_nf as $value1) {

echo "nf: $value1<br />\n";

}

echo "<br>";

 

foreach ($ov as $value2) {

echo "ov: $value2<br />\n";

}

 

echo $value[0];

echo $value[1];

echo $value[2];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido.

 

Tomb Raider, graça a você consegui chegar a essa solução. So tenho que agradecer.. valeu mesmo.

 

Olha o codigo como resolvi esse problemão rsrs!

 

 

$n = $_POST["n"];

for($i=1; $i<=$n; $i++){

$codigo = $_POST["codigo".$i];

$ov = $_POST["ov".$i];

$carga_nf = $_POST["carga_nf".$i];

$sql ="UPDATE NILPEL_HIST_PROG_CARGAS SET CARGA_NF= '$carga_nf', OV='$ov' WHERE CODIGO = '$codigo' ";

$res= odbc_exec($conn,$sql) or die("Houve um erro na gravação dos dados, verifique os valores passados");

}

odbc_close($conn);

echo "<script>window.open('relatorio.php?link=1','_self')</script>";

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.