Jump to content
alphasil

Função Update

Recommended Posts

alphasil

Olá colegas;

mais uma dúvida, estou a fazer o update das tabelas, vai-me buscar o Id mas não altera nada, será que me podem dizer onde está o erro sff??

O script para actualizar

<!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=utf-8" />
<title>JRA - Remover Imóveis</title>
</head>
<?php 
        // realizar requisição (de actualizão) 
$conexao = mysql_connect("localhost", "root") or die ("Erro na conexao com DB!");
    mysql_select_db("jra", $conexao) or die ("DB inexistente");
mysql_query("SET NAMES 'utf8'");
        $id_vendas=$_GET["id"];
        mysql_query("Update tipo, tipologia, concelho, freguesia, cp, descricao, foto1, foto2, valor from vendas where id_vendas = $id_vendas");
        
?>
<body>
<p><strong>Listagem de imóveis</strong></p>
      <p> Actualizado com Sucesso </p>
<?php
    echo '<br/>';
    echo "<a href=list_imoveis.php>Clique aqui para voltar à página anterior</a>";
echo '<br/>';
echo "<a href=admin.php>Clique aqui para voltar à administração</a>";
?>
</body>
</html>

Na barra de endereços tenho o id

http://localhost/jralocal/act_imoveis.php?id=62

Mas nunca actualiza....estou a fazer mal o quê ao certo??  :wallbash:

Cumps


gmc11

 

Share this post


Link to post
Share on other sites
mjamado

Tens a sintaxe do UPDATE errada. Vê na documentação oficial.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
alphasil

Já estive a ver mas que confuso aquilo está....ou é de mim  :wallbash:

Não percebi nada.  😳


gmc11

 

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

UPDATE tabela SET campo = "valor", campo2 = "valor2" WHERE id = 1

Share this post


Link to post
Share on other sites
alphasil

Obrigado;

Mas é assim, ele dá uma listagem com imóveis, tenho um link que diz "Update", o que faz é abrir a página onde faço o registo dos imóveis e poder alterar com os valores que desejar, deste modo:

UPDATE tabela SET campo = "valor", campo2 = "valor2" WHERE id = 1

Não teria de pôr os valores que quero já nesta linha?? Se sim, há problema visto que é um formulário e quero que ele edite o id tal como o faz mas que me deixe alterar os campos com valores que eu quiser introduzir no form.

Cumps


gmc11

 

Share this post


Link to post
Share on other sites
alphasil

Oi

Foi o que pensei, pus assim mas mesmo assim não dá:

<!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=utf-8" />
<title>JRA - Remover Imóveis</title>
</head>
<?php 
        // realizar requisição (de exclusão) 
$conexao = mysql_connect("localhost", "root") or die ("Erro na conexao com DB!");
    mysql_select_db("jra", $conexao) or die ("DB inexistente");
mysql_query("SET NAMES 'utf8'");
        $id_vendas=$_GET["id"];
        mysql_query("UPDATE vendas SET tipo='$_POST[tipo]', tipologia='$_POST[tipologia]', concelho='$_POST[concelho]', freguesia='$_POST[freguesia]', cp='$_POST[cpostal]', descricao='$_POST[descricao]', foto1='$imagem_dir', foto2='$imagem_dir2', valor='$_POST[valor]' WHERE id_vendas = $id_vendas");
        
?>
<body>
<p><strong>Listagem de imóveis</strong></p>
      <p> Actualizado com Sucesso </p>
<?php
    echo '<br/>';
    echo "<a href=list_imoveis.php>Clique aqui para voltar à página anterior</a>";
echo '<br/>';
echo "<a href=admin.php>Clique aqui para voltar à administração</a>";
?>
</body>
</html>


gmc11

 

Share this post


Link to post
Share on other sites
yoda
mysql_query("UPDATE vendas SET tipo='$_POST[tipo]', tipologia='$_POST[tipologia]', concelho='$_POST[concelho]', freguesia='$_POST[freguesia]', cp='$_POST[cpostal]', descricao='$_POST[descricao]', foto1='$imagem_dir', foto2='$imagem_dir2', valor='$_POST[valor]' WHERE id_vendas = $id_vendas") or die(mysql_error());

Share this post


Link to post
Share on other sites
alphasil

Oi

Deu este erro:

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

http://localhost/jralocal/update_imoveis.php

<?php 
        // realizar requisição (de exclusão) 
$conexao = mysql_connect("localhost", "root") or die ("Erro na conexao com DB!");
    mysql_select_db("jra", $conexao) or die ("DB inexistente");
mysql_query("SET NAMES 'utf8'");
        $id_vendas=$_GET["id"];
       mysql_query("UPDATE vendas SET tipo='$_POST[tipo]', tipologia='$_POST[tipologia]', concelho='$_POST[concelho]', freguesia='$_POST[freguesia]', cp='$_POST[cpostal]', descricao='$_POST[descricao]', foto1='$imagem_dir', foto2='$imagem_dir2', valor='$_POST[valor]' WHERE id_vendas = $id_vendas") or die(mysql_error());
        
?>
<p><strong>Listagem de imóveis</strong></p>
      <p> Actualizado com Sucesso </p>
<?php
    echo '<br/>';
    echo "<a href=list_imoveis.php>Clique aqui para voltar à página anterior</a>";
echo '<br/>';
echo "<a href=admin.php>Clique aqui para voltar à administração</a>";
?>

Não vejo aquele " que diz na linha 1... :wallbash:

Cumps


gmc11

 

Share this post


Link to post
Share on other sites
mjamado

Certifica-te que estás a passar o id no GET (que não estás, e por isso é que dá esse erro).


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
brunoais

isso quer dizer que o erro foi detetado no último caracter. Por favor confirma que a variável $id_vendas não está vazia.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
alphasil

Oi

Não está vazio, no formulário ele dá me o id

Registo de Imóveis - Vendas

id_vendas 62

Tipo de Imóvel:  

Tipologia:  

Não é por aí o erro.

o form é este

<!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=utf-8" />
<script language="javascript">
function registar_tipo(){
  window.location= "registar_tipo.php";
}
function registar_tipo(){
  window.location= "registar_tipologia.php";
}
function registar_freguesia(){
  window.location= "registar_freguesia.php";
}
function registar_cp(){
  window.location= "registar_cp.php";
}
</script>
<title>Registo de Imóveis - Venda</title>
<?php
// Conexão com o banco de dados
$conexao = mysql_connect("localhost", "root") or die ("Erro na conexao com DB!");
mysql_select_db("jra", $conexao) or die ("DB inexistente");
mysql_query("SET NAMES 'utf8'");
?>
<style type="text/css">
<!--
.style1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
}
.style2 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
-->
</style>

</head>
<body>
               <div class="row-2">
               	<div class="indent">
                  <img alt="" src="images/logo.jpg" /></a>
                  </div>
               </div>
               <div class="row-3 bot-bg">
               	<div class="slogan">
                  	<span class="style1">Construimos o futuro para si</span>
                 </div>
               </div>
<p class="style2">Registo de Imóveis - Vendas</p>
<form action="update_imoveis.php" method="post" enctype="multipart/form-data">
<table width="704" border="0">
  <tr>
    <td width="130">id_vendas</td>
    <td colspan="3"><span class="style1"><?php echo $id_vendas=$_GET["id"];?></span></td>
    </tr>
  <tr>
    <td><span class="style1">Tipo de Imóvel: </span></td>
    <td colspan="3"><span class="style1">
      <label>
        <select name="tipo">
          <?php 
   $result = mysql_query("SELECT * FROM tipo_imovel ORDER BY tipo ASC");
	while ($row = mysql_fetch_array($result))
	{
	   echo '<option value="'.$row['Tipo'].'">'.$row['Tipo'].'</option>';
	}
       ?>
          </select>
        </label>
      </span><span class="style1">
        <label>
          <input type="button" name="Button_i" value="Inserir" onclick="registar_tipo()"/>
        </label>
      </span></td>
  </tr>
  <tr>
    <td class="style1">Tipologia:</td>
    <td colspan="3"><select name="tipologia" id="tipologia">
          <?php 
   $result = mysql_query("SELECT * FROM tipologia ORDER BY Tipologia ASC");
	while ($row = mysql_fetch_array($result))
	{
	   echo '<option value="'.$row['Tipologia'].'">'.$row['Tipologia'].'</option>';
	}
       ?>
          </select>
      <input type="button" name="Button_i2" value="Inserir" onclick="registar_tipo()"/></td>
  </tr>
  <tr>
    <td><span class="style1">Concelho:</span></td>
    <td colspan="3"><span class="style1">
      <label>
      <input name="concelho" type="text" size="30" maxlength="30" />
      </label>
    </span></td>
    </tr>
    <tr>
    <td><span class="style1">Freguesia:</span></td>
    <td colspan="3"><span class="style1">
      <label>
      <select name="freguesia">
   <?php  
  	    $result = mysql_query("SELECT * FROM freguesia ORDER BY Freguesia ASC");
	while ($row = mysql_fetch_array($result))
	{
	   echo '<option value="'.$row['freguesia'].'">'.$row['freguesia'].'</option>';
	}
       ?>
      </select>
    <input type="button" name="Button_b" value="Inserir" onclick="registar_freguesia()"/>
      </label>
    </span><span class="style1">
    </span><span class="style1">
    </span></td>
    </tr>
 <tr>
   <td><span class="style1">Código-Postal</span></td>
   <td width="172"><span class="style1">
       <label>
         <select name="cpostal">
         <?php 
   $result = mysql_query("SELECT * FROM cpostal ORDER BY cp ASC");
	while ($row = mysql_fetch_array($result))
	{
	   echo '<option value="'.$row['cp'].'">'.$row['cp'].'</option>';
	}
	mysql_close($conexao);
       ?>
          </select>	
          <input type="button" name="Button_b" value="Inserir" onclick="registar_cp()"/>   
        </label>
          </span></td>
       <td colspan="2"> Check Google Maps</td>
    </tr>
 <tr>
    <td><span class="style1">Descrição do Imóvel :</span></td>
    <td colspan="3"><span class="style1">
      <label>
        <textarea name="descricao" cols="70" rows="5"></textarea>
        </label>
    </span></td>
 </tr>
<tr>
    <td class="style1">Foto 1:</td>
    <td colspan="3" class="style1"><span class="style1">
     <input type="file" name="userfile" id="userfile"/>
    </span></td>
    </tr>
	<tr>
    <td class="style1">Foto 2:</td>
    <td colspan="3" class="style1"><span class="style1">
        <input name="userfile2" type="file" />
    </span></td>
    </tr>
	<tr>
	  <td class="style1">Preço:</td>
	  <td colspan="3" class="style1">
          <input name="valor" type="text"size="15" /></td>
    </tr>
    <tr>
    <td colspan="4"><span class="style1">
    </span></td>
    </tr>
<tr>
    <td align="center">
      <span class="style1">
    </span></td>
    <td colspan="2" align="left"><input type="submit" name="Submit4" value="Registar" />
      <label>
      <input type="reset" name="Submit3" value="Apagar" />
      </label></td>
    <td width="344" align="center"> </td>
</tr>
</table>
</form>
<?php
echo '<br/>';
echo "<a href=admin.php>Clique aqui para voltar à administração</a>";
?>
</body>
</html>

O erro não percebo donde vem, pelo ID não é que ele vai buscá-lo

cumps


gmc11

 

Share this post


Link to post
Share on other sites
mjamado

alphasil, o id está vazio. Ponto.

Como exercício, assinala neste último código que postaste, o sítio onde reenvias o id no GET...  :smoke:


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
alphasil

Não percebo esta do id estar vazio, no form aparece-me o número

a linha onde está é esta:

<td colspan="3"><span class="style1"><font color="#FF0000"><?php echo $id_vendas=$_GET["id"];?></font></span></td>

e no ficheiro update tb tá

<?php 
        // realizar requisição (de exclusão) 
$conexao = mysql_connect("localhost", "root") or die ("Erro na conexao com DB!");
    mysql_select_db("jra", $conexao) or die ("DB inexistente");
mysql_query("SET NAMES 'utf8'");
        $id_vendas=$_GET["id"];
       mysql_query("UPDATE vendas SET tipo='$_POST[tipo]', tipologia='$_POST[tipologia]', concelho='$_POST[concelho]', freguesia='$_POST[freguesia]', cp='$_POST[cpostal]', descricao='$_POST[descricao]', foto1='$imagem_dir', foto2='$imagem_dir2', valor='$_POST[valor]' WHERE id_vendas = $id_vendas") or die(mysql_error());
        
?>

Sei que no registo que escolho, ele abre o form e dá-me o número que escolhi...n percebo


gmc11

 

Share this post


Link to post
Share on other sites
taviroquai

@alphasil

Ha 2 passos distintos:

1. Abrir o form

2. Submeter o form

Só estás a enviar o id no 1º passo  :P

No 2º passo também tens que enviar o id e tem que ser um input do form... não o TD onde apenas mostras.

Manda por aqui:

<form action="update_imoveis.php?id=<?=$_GET["id"]?>" method="post" enctype="multipart/form-data">

Percebeste agora? :)

Share this post


Link to post
Share on other sites
alphasil

Não dá na mesma, mesmo erro

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

Adicionei aquilo que puseste mas dá na mesma o mesmo erro.

Form

<!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=utf-8" />
<script language="javascript">
function registar_tipo(){
  window.location= "registar_tipo.php";
}
function registar_tipo(){
  window.location= "registar_tipologia.php";
}
function registar_freguesia(){
  window.location= "registar_freguesia.php";
}
function registar_cp(){
  window.location= "registar_cp.php";
}
</script>
<title>Registo de Imóveis - Venda</title>
<?php
// Conexão com o banco de dados
$conexao = mysql_connect("localhost", "root") or die ("Erro na conexao com DB!");
mysql_select_db("jra", $conexao) or die ("DB inexistente");
mysql_query("SET NAMES 'utf8'");
?>
<style type="text/css">
<!--
.style1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
}
.style2 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
-->
</style>

</head>
<body>
               <div class="row-2">
               	<div class="indent">
                  <img alt="" src="images/logo.jpg" /></a>
                  </div>
               </div>
               <div class="row-3 bot-bg">
               	<div class="slogan">
                  	<span class="style1">Construimos o futuro para si</span>
                 </div>
               </div>
<p class="style2">Registo de Imóveis - Vendas</p>
<form action="update_imoveis.php?id=<?=$_GET["id"]?>" method="post" enctype="multipart/form-data">
<table width="704" border="0">
  <tr>
    <td width="130" class="style1">Nº de Registo:</td>
    <td colspan="3"><span class="style1"><font color="#FF0000"><?php echo $id_vendas=$_GET["id"];?></font></span></td>
    </tr>
  <tr>
    <td><span class="style1">Tipo de Imóvel: </span></td>
    <td colspan="3"><span class="style1">
      <label>
        <select name="tipo">
          <?php 
   $result = mysql_query("SELECT * FROM tipo_imovel ORDER BY tipo ASC");
	while ($row = mysql_fetch_array($result))
	{
	   echo '<option value="'.$row['Tipo'].'">'.$row['Tipo'].'</option>';
	}
       ?>
          </select>
        </label>
      </span><span class="style1">
        <label>
          <input type="button" name="Button_i" value="Inserir" onclick="registar_tipo()"/>
        </label>
      </span></td>
  </tr>
  <tr>
    <td class="style1">Tipologia:</td>
    <td colspan="3"><select name="tipologia" id="tipologia">
          <?php 
   $result = mysql_query("SELECT * FROM tipologia ORDER BY Tipologia ASC");
	while ($row = mysql_fetch_array($result))
	{
	   echo '<option value="'.$row['Tipologia'].'">'.$row['Tipologia'].'</option>';
	}
       ?>
          </select>
      <input type="button" name="Button_i2" value="Inserir" onclick="registar_tipo()"/></td>
  </tr>
  <tr>
    <td><span class="style1">Concelho:</span></td>
    <td colspan="3"><span class="style1">
      <label>
      <input name="concelho" type="text" size="30" maxlength="30" />
      </label>
    </span></td>
    </tr>
    <tr>
    <td><span class="style1">Freguesia:</span></td>
    <td colspan="3"><span class="style1">
      <label>
      <select name="freguesia">
   <?php  
  	    $result = mysql_query("SELECT * FROM freguesia ORDER BY Freguesia ASC");
	while ($row = mysql_fetch_array($result))
	{
	   echo '<option value="'.$row['freguesia'].'">'.$row['freguesia'].'</option>';
	}
       ?>
      </select>
    <input type="button" name="Button_b" value="Inserir" onclick="registar_freguesia()"/>
      </label>
    </span><span class="style1">
    </span><span class="style1">
    </span></td>
    </tr>
 <tr>
   <td><span class="style1">Código-Postal</span></td>
   <td width="172"><span class="style1">
       <label>
         <select name="cpostal">
         <?php 
   $result = mysql_query("SELECT * FROM cpostal ORDER BY cp ASC");
	while ($row = mysql_fetch_array($result))
	{
	   echo '<option value="'.$row['cp'].'">'.$row['cp'].'</option>';
	}
	mysql_close($conexao);
       ?>
          </select>	
          <input type="button" name="Button_b" value="Inserir" onclick="registar_cp()"/>   
        </label>
          </span></td>
       <td colspan="2"> Check Google Maps</td>
    </tr>
 <tr>
    <td><span class="style1">Descrição do Imóvel :</span></td>
    <td colspan="3"><span class="style1">
      <label>
        <textarea name="descricao" cols="70" rows="5"></textarea>
        </label>
    </span></td>
 </tr>
<tr>
    <td class="style1">Foto 1:</td>
    <td colspan="3" class="style1"><span class="style1">
     <input type="file" name="userfile" id="userfile"/>
    </span></td>
    </tr>
	<tr>
    <td class="style1">Foto 2:</td>
    <td colspan="3" class="style1"><span class="style1">
        <input name="userfile2" type="file" />
    </span></td>
    </tr>
	<tr>
	  <td class="style1">Preço:</td>
	  <td colspan="3" class="style1">
          <input name="valor" type="text"size="15" /></td>
    </tr>
    <tr>
    <td colspan="4"><span class="style1">
    </span></td>
    </tr>
<tr>
    <td align="center">
      <span class="style1">
    </span></td>
    <td colspan="2" align="left"><input type="submit" name="Submit4" value="Registar" />
      <label>
      <input type="reset" name="Submit3" value="Apagar" />
      </label></td>
    <td width="344" align="center"> </td>
</tr>
</table>
</form>
<?php
echo '<br/>';
echo "<a href=admin.php>Clique aqui para voltar à administração</a>";
?>
</body>
</html>

Ficheiro update

<?php 
        // realizar requisição (de exclusão) 
$conexao = mysql_connect("localhost", "root") or die ("Erro na conexao com DB!");
    mysql_select_db("jra", $conexao) or die ("DB inexistente");
mysql_query("SET NAMES 'utf8'");
        $id_vendas=$_GET["id"];
       mysql_query("UPDATE vendas SET tipo='$_POST[tipo]', tipologia='$_POST[tipologia]', concelho='$_POST[concelho]', freguesia='$_POST[freguesia]', cp='$_POST[cpostal]', descricao='$_POST[descricao]', foto1='$imagem_dir', foto2='$imagem_dir2', valor='$_POST[valor]' WHERE id_vendas = $id_vendas") or die(mysql_error());
        
?>
<body>
<p><strong>Listagem de imóveis</strong></p>
      <p> Actualizado com Sucesso </p>
<?php
    echo '<br/>';
    echo "<a href=list_imoveis.php>Clique aqui para voltar à página anterior</a>";
echo '<br/>';
echo "<a href=admin.php>Clique aqui para voltar à administração</a>";
?>

Já não percebo nada :P


gmc11

 

Share this post


Link to post
Share on other sites
Rechousa

Desculpa, mas eu não sou especialista em PHP nem em MySQL, mas não te faltam umas aspas ou plicas em cada parâmetro?

O que eu digo seria algo do género:

       mysql_query("UPDATE vendas SET tipo='$_POST["tipo"]'... ) or die(mysql_error());

EDIT:

Encontrei uma thread com isso:

http://stackoverflow.com/questions/2105375/how-should-i-write-php-post-vars-in-a-mysql-query-function


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
alphasil

Oi, obrigado pela dica mas não é disso, se ponho aspas ou plicas dá-me erro de código  :wallbash:

Já n estou a ver mais nada  😡


gmc11

 

Share this post


Link to post
Share on other sites
mjamado
Oi, obrigado pela dica mas não é disso, se ponho aspas ou plicas dá-me erro de código  :wallbash:

Também pode ser isso... Existe uma configuração do PHP, que agora não me vêm à "alembradura", que modifica a capacidade da linguagem "entender" esse tipo de índice sem aspas ou plicas.

Para colocares as plicas sem te dar erros, tens de usar a sintaxe com chavetas:

// dá granel
$teste = "Uma string com uma $variavel['indice'] pelo meio.";
// funciona
$teste = "Uma string com uma {$variavel['indice']} pelo meio.";

De qualquer forma, o melhor mesmo é evitar este tipo de sintaxe e concatenar os vários pedaços da string:

$teste = "Uma string com uma " . $variavel['indice'] . " pelo meio.";


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.