Ir para conteúdo

POWERED BY:

Arquivado

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

Abbel_junior

[Resolvido] Alterando dados com php e mysql

Recommended Posts

Olá Pessoal Boa noite,

 

Estou aki mais uma vez precisando da ajuda de vcs, tenho aki um projeto que montei utilizando varias outras ideias no intuito de aprender mais de php.

Pretendo alterar dados que ja existem no Banco de Dados.

 

Abaixo segue os dois arquivos :

 

 

 

alterar.php

 

"este está funcionando perfeito, recebe os dados do bd normalmente"

<?php

/*
* faz a conexao ao banco
* e seleciona a base de dados
*/
$conexao = mysql_connect("127.0.0.1", "root", "minha senha")
or die ("Erro na conexão ao banco de dados.");
$db = mysql_select_db("meu banco")
or die ("Erro ao selecionar a base de dados.");

/*
* monta e executa consulta em SQL
*/
$sql = "SELECT * FROM cliente WHERE id = ".$_GET['id'];
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta.");

$linha=mysql_fetch_array($resultado);

?>

<html>
<head>
<title>AGENDAR REVISÕES</title>
<link href="css/estilo.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.style5 {font-size: 10px}
.style6 {color: #FF0000}
.style7 {font-size: 10px;
color: #006600;
font-weight: bold;
}
-->
</style>
<script type="text/JavaScript">
<!--
function MM_goToURL() { //v3.0
 var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
 for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</script>
</head>
<body>
<!--
<table width="75%" border="0" align="center" cellpadding="1" cellspacing="1">
 <tr>
   <td height="175"><div align="center"><img src="css/logo.png"/></div></td>
 </tr>
 <tr>
   <td height="27"><div align="center">



       <a href="javascript:window.close()" class="Branco"><span class="Link_laranja">SAIR</span> </a> </div>


   </td>
 </tr>
</table>
-->
<br>
<table bgcolor="#000000" width="75%" border="1" bordercolor="#000000" align="center" cellpadding="0" cellspacing="0">
<tr>
   <td height="150" align="center" valign="top" class="Cinza"><table width="100%" border="0" cellspacing="0" cellpadding="0">
       <tr>
         <td height="10" >

         <div align="right" class="branco">

         <a href="javascript:history.go(-1);" class="Branco">
         <input class="form" value="          Voltar"></a>

         <a href="javascript:window.close()" class="Branco">
         <input class="form" value="          Fechar"></a>
          </div>

         </td>
       </tr>

       <tr>
         <td height="10" valign="bottom"><table width="100%" border="0" cellspacing="0" cellpadding="0">

           <tr>
             <td width="78%" class="Titulo_Cinza"><table width="200" border="0">
               <tr>
                 <th scope="row"><img src="img/logo_visto.gif" width="162" height="75"></th>
               </tr>
             </table></td>
             <td width="22%" valign="bottom" class="Branco"></td>
           </tr>
         </table></td>
       </tr>
       <tr>
         <td height="10" valign="bottom" class="Branco"></td>
       </tr>
       <tr>
         <td height="10">



		<!--<form action="upload.php" method="post" enctype="multipart/form-data" name="form1">-->
           <form action="alterar_db.php?id=<?php echo $_GET['id'] ?>" method="post" onSubmit="return enviardados();"> 

		<table width="100%" border="0" align="center" cellpadding="5" cellspacing="2">
             <tr>
               <td colspan="2" bgcolor="#333333" class="Branco"><div align="center" class="Link_amarelo">ALTERANDO DADOS DO AGENDAMENTO</div></td>
               </tr>
             <tr>
               <td class="Branco"> </td>
               <td> </td>
             </tr>              

             <tr>
               <td class="Border"><div align="right">Nome : </div></td>
               <td><input for="nome" id="nome" class="form" type="text" name="edNome" size=65 maxlength=80 value="<?php echo $linha['nom_cliente'] ?>"></td>
             </tr>


		  <tr>
               <td class="Border"><div align="right">Modelo : </div></td>
               <td><select for="modelo" id="modelo" class="form" name="edModelo">				
<option value="<?php echo $linha['mod_moto'] ?>"><?php echo $linha['mod_moto'] ?></option>
<option value="Biz 125 +">Biz 125 +</option>
<option value="BIZ 125ie ES">BIZ 125ie ES</option>
<option value="BIZ 125ie KS">BIZ 125ie KS</option>
<option value="CB 1300 Super Four">CB 1300 Super Four</option>
<option value="CB 1300 Super Four ABS">CB 1300 Super Four ABS</option>
<option value="CB 300R">CB 300R</option>
<option value="CB 300R ABS">CB 300R ABS</option>
<option value="CB 600F Hornet">CB 600F Hornet</option>
<option value="CB 600F Hornet ABS">CB 600F Hornet ABS</option>
</select>

<b class="Branco">   Revisão :</b>
<select for="revisao" id="revisao" class="form" name="edRevisao">
<option value="<?php echo $linha['rev_moto'] ?>"><?php echo $linha['rev_moto'] ?></option>
<option value="1000KM">1000 KM</option>
<option value="3000KM">3000 KM</option>
<option value="4000KM">4000 KM</option>
</select>  
</td>
             </tr>

             <tr>
               <td class="Border"><div align="right">Cidade : </div></td>
               <td><input for="cidade" id="cidade" class="form" type="text" name="edCidade" size=45 maxlength=80 value="<?php echo $linha['obs_cliente'] ?>">
               <b class="Branco">     UF :</b>
               <select for="uf" id="uf" class="form" name="edUf">
<option value="<?php echo $linha['uf_cliente'] ?>"><?php echo $linha['uf_cliente'] ?></option>
<option value="BA">BA</option>
<option value="MG">MG</option>
<option value="ES">ES</option>
</select>
               </td>
             </tr>
              <tr>
               <td class="Border"><div align="right">Endereço : </div></td>
               <td><input for="endereco" id="endereco"  class="form" type="text" name="edEndereco" size=45 maxlength=80 value="<?php echo $linha['end_cliente'] ?>"> 
               <b class="Branco">      N :  </b>
               <input for="n" id="n" class="form" type="text" name="edNumero" size=5 maxlength=80 value="<?php echo $linha['num_cliente'] ?>">
               </td>
             </tr>
             <tr>
               <td class="Border"><div align="right">Telefone : </div></td>
               <td><input for="telefone" id="telefone" class="form" type="text" name="edTelefone" size=40 maxlength=80 value="<?php echo $linha['tel_cliente'] ?>"> </td>
             </tr>

             <tr>
               <td class="Border"><div align="right">Observações : </div></td>
               <td><textarea for="obs" id="obs" class="form" name="edObs" rows="3" cols="40">
               <?php echo $linha['res_cliente'] ?> </textarea></td>
             </tr>


             <tr>
               <td class="Border" height="20"> </td>
               <td><span class="branco">
                 <input name="Submit" type="submit" class="form" value="            Alterar            ">
               </span><!--<span class="Titulo_Cinza">| <span class="branco">
               <input name="Reset" type="reset" class="form" value="    Apagar    ">
               </span></span>--></td>
             </tr>
           </table>
           </form> 






	  					</td>
       </tr>
       <tr>
         <td height="10">


				</td>
       </tr>
       <tr>
         <td height="10">

</td>
       </tr>
       <tr>
         <td height="10">


   </table></td>
 </tr>

 </table>

<table width="75%" border="1" bordercolor="#000000" align="center" cellpadding="0" cellspacing="0" bgcolor="#000000">
 <tr>
   <td height="5" align="center" valign="middle" bgcolor="#333333"></td>
 </tr>
 <tr>
   <td height="50" align="center" valign="middle" background="css/bg_rodape.gif" bgcolor="#000000" class="Texto">Desenvolvido por Uiliam R. Nunes </td>
 </tr>
 <tr>
   <td height="1" align="center" valign="middle" bgcolor="#000000"></td>
 </tr>
</table>
<br>

<br>
</body>
</html>

alterar_bd.php

<?php

/*
* faz a conexao ao banco
* e seleciona a base de dados
*/
$conexao = mysql_connect("127.0.0.1", "root", "minha senha")
or die ("Erro na conexão ao banco de dados.");
$db = mysql_select_db("meu banco")
or die ("Erro ao selecionar a base de dados.");


/*
* monta e executa consulta em SQL
*/
//$ver = ($_POST['ver']) ? $_POST['ver'] : '0';
$sql = "UPDATE cliente SET 
nom_cliente='".$_POST['nom_cliente']."', 
mod_moto='".$_POST['mod_moto']."',
rev_moto='".$_POST['rev_moto']."',
obs_cliente='".$_POST['obs_cliente']."',
uf_cliente='".$_POST['uf_cliente']."',
end_cliente='".$_POST['end_cliente']."',
num_cliente='".$_POST['num_cliente']."',
tel_cliente='".$_POST['tel_cliente']."',
res_cliente='".$_POST['res_cliente']."',

WHERE id = ".$_GET['id'];

$resultado = mysql_query($sql)
or die ("Erro ao alterar dados.");

?>

<h1>Notícia alterada com sucesso!</h1>

Este aki apenas apresenta: Erro ao alterar dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, você tem que tomar muito cuidado quando você for concatenar essas strings que precisam de aspas pra funcionar direito. Todo valor externo no mysql tem que ser delimitado por aspas simples ('). Então quando você for fazer isso você tem que tomar cuidado quando vai fechar as aspas duplas e colocar o ponto. Outra coisa, o último argumento antes do WHERE não pode ter vírgula. É por isso que tá dando erro no seu script. Tire a vírgula de:

 

$sql = "...
res_cliente='".$_POST['res_cliente']."',

WHERE id = ".$_GET['id'];

Troque por

$sql = "...
res_cliente='".$_POST['res_cliente']."'

WHERE id = ".$_GET['id'];

E cara, tem mais, como eu disse das aspas, você tem que delimitar o id com aspas simples também. Ficando assim:

 

$sql = "...
res_cliente='".$_POST['res_cliente']."'

WHERE id = '".$_GET['id']."'";

Tenta aew e posta pra gnt. E coloca a tag code.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Vinicvo, refiz tudo aki mas não vai, acho que estou falhando mais do que eu pensava, vou mostrar para você as linhas passo-a-passo.

 

Formulário.php

 

<form action="alterar_db.php?id=<?php echo $_GET['id'] ?>" method="post" >

<tr>
               <td class="Border">div align="right">Nome : </div></td>
               <td><input for="nome" id="nome" class="form" type="text" name="edNome" size=65 maxlength=80 value="<?php echo $linha['nom_cliente'] ?>[/color]"></td>
             </tr>
<input name="Submit" type="submit" class="form" value="Alterar"><form>

 

alterar_bd.php

<?php 
include "con_bd.php"

$sql = " UPDATE cliente SET 
nom_cliente='".$_POST['nom_cliente']."',

WHERE id = '".$_GET['id']"'";

$resultado = mysql_query($sql)
or die ("Erro ao alterar Dados.");

?>

Com isso a minha dúvida é, pq não está alterando e o que eu quero é alterar os dados que ja estão gravados no Banco de Dados Mysql ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

certamente esta ocorrendo um erro no sql, o que você poderia fazer é exibir a variavel $sql na tela

  echo $sql;

e ai você analisa se todos os post sao validos e se o id tbm é valido...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá João, obrigado pela força, não havia pensado nesse detalhe, imprimi a sql na tela conforme indicou e apreveitei pra arrumar alguns que não estavam válidos.... Agora aperece todos pra min mas mesmo assim ele não está alterando, ja tentei refazer aki as concactenações , verifiquei as aspas mas nada adianta.

 

segue conteudo completo do alterar_db.php

<?php

include "con_bd.php";

$data=date("d/m/y"); 
$hora=date("H:i:s");

$sql = " UPDATE cliente SET 
nom_cliente='".$_POST['edNome']."', 
mod_moto='".$_POST['edModelo']."',
rev_moto='".$_POST['edRevisao']."',
obs_cliente='".$_POST['edCidade']."',
uf_cliente='".$_POST['edUf']."',
end_cliente='".$_POST['edEndereco']."',
num_cliente='".$_POST['edNumero']."',
tel_cliente='".$_POST['edTelefone']."',
res_cliente='".$_POST['edObs']."',
data=".$data." "."
hora=".$hora." "."

WHERE id = ".$_GET['id'];

echo $sql;

$resultado = mysql_query($sql)
or die ("Erro ao alterar Dados.");

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah ... para complementar ele imprimi na tela dessa forma pra min :

 

 

UPDATE cliente SET nom_cliente='Manoel Fortunato Silva', mod_moto='Lead 110', 
rev_moto='4000KM', obs_cliente='Mandagiba', uf_cliente='MG', 
end_cliente='Rua santa clara ', num_cliente='1023', 
tel_cliente='0235522669988', 
res_cliente='ALTERAR, ALTERAR, ALTERAR, ALTERAR, ALTERAR, ALTERAR,', 
data=21/10/09 hora=19:06:30 
WHERE id = 20Erro ao alterar Dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Era bom, ver o erro real:

$resultado = mysql_query( $sql )or die( mysql_error() );
Os teus campos de data e hora, são varchar ?

 

Se forem mesmo, faltou uma virgula aqui, além das aspas:

data='".$data."', "."
hora='".$hora."' "."
essas concatenações tão esquisitas e trabalhosas..

 

Eu prefiro fazer assim:

$sql = "UPDATE cliente SET 
	nom_cliente='{$_POST['edNome']}',  
	mod_moto='{$_POST['edModelo']}', 
	rev_moto='{$_POST['edRevisao']}', 
	obs_cliente='{$_POST['edCidade']}', 
	uf_cliente='{$_POST['edUf']}', 
	end_cliente='{$_POST['edEndereco']}', 
	num_cliente='{$_POST['edNumero']}', 
	tel_cliente='{$_POST['edTelefone']}', 
	res_cliente='{$_POST['edObs']}', 
	data='{$data}', 
	hora='{$hora}' 
	WHERE id = {$_GET['id']}";

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO PESSOAL

 

Eu refiz novamente e dessa vez de uma forma diferente, segue o cod:

 

alterar_db.php

<?
include "con_db.php";

$nome = $_POST["edNome"];
$modelo = $_POST["edModelo"];
$revisao = $_POST["edRevisao"];
$cidade = $_POST["edCidade"];
$uf= $_POST["edUf"];
$endereco = $_POST["edEndereco"];
$numero = $_POST["edNumero"];
$telefone = $_POST["edTelefone"];
$obs = $_POST["edObs"];
$data=date("d/m/y"); 
$hora=date("H:i:s");
$id = $_GET["id"];

$sql = "UPDATE cliente SET 

nom_cliente='$nome', 
mod_moto='$modelo',
rev_moto='$revisao',
obs_cliente='$cidade',
uf_cliente='$uf',
end_cliente='$endereco',
num_cliente='$numero',
tel_cliente='$telefone',
res_cliente='$obs',
data='$data',
hora='$hora'


WHERE id='$id'";
$resultado = mysql_query($sql)
or die (mysql_error());

echo "Alteração realizada com sucesso!";
?>

Mas tenho mais um probleminha

 

a data esta sendo impressa assim:

 

09/10/2021

Compartilhar este post


Link para o post
Compartilhar em outros sites

OS campos de data no Mysql são do tipo DATE e hora do tipo TIME

Compartilhar este post


Link para o post
Compartilhar em outros sites

OS campos de data no Mysql são do tipo DATE e hora do tipo TIME

 

RESOLVIDO A QUESTÃO DA DATA

 

Segue cod:

 

<?php echo date('y/m/d', strtotime($row_rs_clientes['data'])) ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

quer dizer que o problema abel, era que você tinha colocado varchar ? nos campos data e hora ?

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.