1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

PHP update

Discussão em 'Web Development' iniciada por iGMBroken, 22 de Maio de 2007. (Respostas: 11; Visualizações: 3980)

  1. iGMBroken

    iGMBroken Power Member

    precisava de uma maozinha... como faço um update em php?


    tenho tudo a correr so falta mesmo e a ultima parte do envio do codigo :S...


    Código:
     
    base de dados= chardware
    tabela= hardware
     
    <?
    $con = mysql_connect("localhost","root","");
      $caracteristicas = $_POST['caracteristicas'];
    
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }mysql_select_db("chardware", $con);
    mysql_query("UPDATE hardware SET caracteristicas = '$caracteristicas' WHERE caracteristicas = '$caracteristicas' ");
    mysql_close($con);
    ?>
    <?
    header('location:estrutura.php');
    ?>
    
    ----------------------
    
    uma maozinha plz :P

    abraço, broken
     
    Última edição: 22 de Maio de 2007
  2. Demio

    Demio Power Member

    Mas exactamente qual é a tua questão? :O
     
  3. capricorn

    capricorn Power Member

    Código:
    UPDATE hardware SET caracteristicas = '$caracteristicas' WHERE caracteristicas='$caracteristicas'
    O que o código fáz é alterar a caracteristica que é igual a $caracteristicas por $caracteristicas, ou seja... nada. se disseres o que realmente queres fazer pode ser que possamos ajudar
     
  4. iGMBroken

    iGMBroken Power Member

    tenho um formulario onde permite alterar os dados.

    ate aki tudo bem os dados vao ate as box's. dps disso kuando altero os campos e envio outra vez ele nao envia
     
  5. capricorn

    capricorn Power Member

    Não te estás a exprimir muito bem pois nós não conhecemos o código de q falas.
    mas normalmente um update é feito seleccionando a linha através do id:
    Código:
    UPDATE hardware SET caracteristicas = '$caracteristicas' WHERE id='$id_do_hardware'
     
    Última edição: 22 de Maio de 2007
  6. iGMBroken

    iGMBroken Power Member


    bem entao eu vou tentar ainda explicar melhor.

    Base de dados: chardware
    tabela: hardware

    objectivo: fazer com que seja possivel alterar os campos da tabela hardware atraves de um formulario em php. utilizando assim a função up date.


    Ficheiro de formulario
    --------------------------------------------------------------
    Código:
    <?php include 'principal.php'; ?>
    <form method="post" action="alter2.php">
            <input name="id" type="hidden"  value="<? echo $linha['id']?>">
      <table>
        <tr>
          <td colspan="2">Id n&ordm; <?php echo $_REQUEST['id'];?> </td>
        </tr>  
     <tr>
          <td>Caracteristicas</td>
          <td><input type="text" name="caracteristicas" value="<?php echo $_REQUEST['caracteristicas'];?>" /></td>
     </tr>
        <tr>
          <td width="30%">Tipo</td>
          <td><input type="text" name="tipo" value="<?php echo $_REQUEST['tipo'];?>" /></td>
        </tr>
        <tr>
          <td width="30%">Quantidade</td>
          <td><input type="text" name="quantidade" value="<?php echo $_REQUEST['quantidade'];?>" /></td>
        </tr>
        <tr>
          <td width="30%">Data</td>
          <td><input type="text" name="data" value="<?php echo $_REQUEST['data'];?>" /></td>
        </tr>
        <tr>
          <td width="30%">Estado</td>
          <td><input type="text" name="estado" value="<?php echo $_REQUEST['estado'];?>" /></td>
        </tr>
        <tr>
          <td width="30%">Local</td>
          <td><input type="text" name="local" value="<?php echo $_REQUEST['local'];?>" /></td>
        </tr>
        <tr>
          <td width="30%">Garantia</td>
          <td><input type="text" name="garantia" value="<?php echo $_REQUEST['garantia'];?>" /></td>
        </tr>
        <tr>
          <td width="30%">Fornecedor</td>
          <td><input type="text" name="fornecedor" value="<?php echo $_REQUEST['fornecedor'];?>" /></td>
        </tr>
      </table>
      <br />
      <input name="submit" type="submit" value="Alterar" />
      <input type="hidden" name="id" value="<?php echo $_REQUEST['id']; ?>" />
    </form>
    
    -----------------------------------------------------------------------------------

    Ficheiro de envio para a bd dps de carregar no botao alterar
    -----------------------------------------------------------------------------------
    Código:
     
    <?
    $con = mysql_connect("localhost","root","");
    $id = $_POST['id'];
     
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }mysql_select_db("chardware", $con);
    mysql_query("UPDATE hardware SET caracteristicas = '$caracteristicas' WHERE id='$id' ");
     
    mysql_close($con);
    ?>
    
    ------------------------------------------------------------------------

    a ideia e poder alterar os campos e nunca o id deste.

    espero que tenha sido mais claro com esta explicação :-D

    um abraço, broken [[]]
     
  7. capricorn

    capricorn Power Member

    se o código não está a funcionar experimenta
    Código:
    mysql_query("UPDATE hardware SET caracteristicas = '$caracteristicas' WHERE id='$id' ") or die(mysql_error());
     
  8. iGMBroken

    iGMBroken Power Member

    ehehe bom trabalho, ja funciona.

    Coloquei o codigo que me deste dps deu um erro, que faltava a variavel. coloquei a variavel e já funciona :D

    muito obrigado pela ajuda!:-D
     
  9. iGMBroken

    iGMBroken Power Member

    lol, sem querer ser mt xato entretanto surgiu me aqui outro problema.

    Código:
     
    $id = $_POST['id']; //variavel
    
     
     
     
    mysql_query("UPDATE hardware SET caracteristicas = '$caracteristicas' WHERE id='$id' ") or die(mysql_error());
    
    tudo a funcionar, e agr como faço para adicionar os restantes campos. tentei fazer o seguinte:

    Código:
    mysql_query("UPDATE hardware SET caracteristicas = '$caracteristicas', quantidade = '$quantidade'  WHERE id='$id' ") or die(mysql_error());
    
    
    mas n resultou, afinal o que tenho errado ?
     
  10. capricorn

    capricorn Power Member

    não tenho a certeza, mas em certos servidores é necessário usar $_POST nas variáveis post
    Código:
    $id = $_POST['id']; //variavel
    tenta fazer isto para todas as variaveis
     
  11. Demio

    Demio Power Member

    Só não é necessário usar $_POST nos servers mal configurados. Se o teu servidor tem a register globals ligada desliga isso imediatamente. Isso expõe-te a muito exploit :P

    E já agora, devias ler: http://www.php.net/mysql_real_escape_string
     
  12. iGMBroken

    iGMBroken Power Member

    exactamente, foi necessario criar as variaveis...

    $quantidade = $_POST['quantidade'];

    entretanto...

    'Se o teu servidor tem a register globals ligada desliga isso imediatamente. Isso expõe-te a muito exploit :P'

    eu nao estou a utilizar ainda o servidor. estou a utilizar o easyphp, na empresa. so dps e ke devo colocar no ftp deles onde esta alojado o site.

    como desligo a register globals?

    tnks por tudo capricorn
     

Partilhar esta Página