Change Mysql data in PHP

0

I have Tb_workers where it is filled out by a form. And then I created another page to change that data.

Change.php     

$id = $exibe["id"];

$Nome = $exibe["Nome"];

$Morada = $exibe["Morada"];

$Tipo = $exibe["Tipo"];

$Email = $exibe["Email"];
$AlvaraNumero = $exibe["AlvaraNumero"];

$AlvaraValidade = $exibe["AlvaraValidade"];

$AlvaraAnexo = $exibe["AlvaraAnexo"];

$AcidenteNumero = $exibe["AcidenteNumero"];

$AcidenteValidade = $exibe["AcidenteValidade"];

 $AcidenteAnexo = $exibe["AcidenteAnexo"];

 $SeguroNumero = $exibe["SeguroNumero"];

$SeguroValidade = $exibe["SeguroValidade"];

 $SeguroAnexo = $exibe["SeguroAnexo"];

$FinancasValidade = $exibe["FinancasValidade"];

 $FinancasAnexo = $exibe["FinancasAnexo"];

 $SocialValidade = $exibe["SocialValidade"];

$SocialAnexo = $exibe["SocialAnexo"];

$RemuneracaoValidade = $exibe["RemuneracaoValidade"];

$RemuneracaoAnexo = $exibe["RemuneracaoAnexo"];

$InstaladorNumero = $exibe["InstaladorNumero"];

$InstaladorValidade = $exibe["InstaladorValidade"];

$InstaladorAnexo = $exibe["InstaladorAnexo"];

 $MontadorNumero = $exibe["MontadorNumero"];

$MontadorValidade = $exibe["MontadorValidade"];

$MontadorAnexo = $exibe["MontadorAnexo"];
}

?>

 <form action="salvaralteracao.php" method="POST">
    <input type="hidden" name="id" value="<?php echo $id; ?>">
    Nome<input type="Varchar" name="Nome" value="<?php echo $Nome; ?>"><p>
    Morada<input type="Text" name="Morada" value="<?php echo $Morada; ?>"><p>
    Email<input type="text" name="Email" value="<?php echo $Email; ?>"><p>
            AlvaraNumero<input type="integer" name="AlvaraNumero" value="<?php echo $AlvaraNumero; ?>"><p>
    AlvaraValidade<input type="date" name="AlvaraValidade" value="<?php echo $AlvaraValidade; ?>"><p>
    AlvaraAnexo<input type="file" name="AlvaraAnexo" value="<?php echo $AlvaraAnexo; ?>"><p>
    AcidenteNumero<input type="integer" name="AcidenteNumero" value="<?php echo $AcidenteNumero; ?>"><p>
    AcidenteValidade<input type="Date" name="AcidenteValidade" value="<?php echo $AcidenteValidade; ?>"><p>
    AcidenteAnexo<input type="file" name="AcidenteAnexo" value="<?php echo $AcidenteAnexo; ?>"><p>
    SeguroNumero<input type="integer" name="SeguroNumero" value="<?php echo $SeguroNumero; ?>"><p>
    SeguroValidade<input type="Date" name="SeguroValidade" value="<?php echo $SeguroValidade; ?>"><p>
    SeguroAnexo<input type="file" name="SeguroAnexo" value="<?php echo $SeguroAnexo; ?>"><p>
    FinancasValidade<input type="Date" name="FinancasValidade" value="<?php echo $FinancasValidade; ?>"><p>
    FinancasAnexo<input type="file" name="FinancasAnexo" value="<?php echo $FinancasAnexo; ?>"><p>
    SocialValidade<input type="Date" name="SocialValidade" value="<?php echo $SocialValidade; ?>"><p>
    SocialAnexo<input type="file" name="SocialAnexo" value="<?php echo $SocialAnexo; ?>"><p>
    RemuneracaoValidade<input type="Date" name="RemuneracaoValidade" value="<?php echo $RemuneracaoValidade; ?>"><p>
    RemuneracaoAnexo<input type="file" name="RemuneracaoAnexo" value="<?php echo $RemuneracaoAnexo; ?>"><p>
    InstaladorNumero<input type="integer" name="InstaladorNumero" value="<?php echo $InstaladorNumero; ?>"><p>
    InstaladorValidade<input type="Date" name="InstaladorValidade" value="<?php echo $InstaladorValidade; ?>"><p>
    InstaladorAnexo<input type="file" name="InstaladorAnexo" value="<?php echo $InstaladorAnexo; ?>"><p>
    MontadorNumero<input type="integer" name="MontadorNumero" value="<?php echo $MontadorNumero; ?>"><p>
    MontadorValidade<input type="Date" name="MontadorValidade" value="<?php echo $MontadorValidade; ?>"><p>
    MontadorAnexo<input type="file" name="MontadorAnexo" value="<?php echo $MontadorAnexo; ?>"><p>      
 <input type="submit" value="Guardar">

 </form>

salvalteration.php

<?php

include("conectar.php");

$id = $_POST['id'];

$Nome = $_POST['Nome'];

$Morada = $_POST['Morada'];

$Email = $_POST['Email'];

    $AlvaraNumero = $_POST["AlvaraNumero"];

$AlvaraValidade = $_POST["AlvaraValidade"];

$AlvaraAnexo = $_POST["AlvaraAnexo"];

$AcidenteNumero = $_POST["AcidenteNumero"];

$AcidenteValidade = $_POST["AcidenteValidade"];

$AcidenteAnexo = $_POST["AcidenteAnexo"];

$SeguroNumero = $_POST["SeguroNumero"];

$SeguroValidade = $_POST["SeguroValidade"];

$SeguroAnexo = $_POST["SeguroAnexo"];

$FinancasValidade = $_POST["FinancasValidade"];

$FinancasAnexo = $_POST["FinancasAnexo"];

$SocialValidade = $_POST["SocialValidade"];

$SocialAnexo = $_POST["SocialAnexo"];

$RemuneracaoValidade = $_POST["RemuneracaoValidade"];

$RemuneracaoAnexo = $_POST["RemuneracaoAnexo"];

$InstaladorNumero = $_POST["InstaladorNumero"];

$InstaladorValidade = $_POST["InstaladorValidade"];

$InstaladorAnexo = $_POST["InstaladorAnexo"];

$MontadorNumero = $_POST["MontadorNumero"];

$MontadorValidade = $_POST["MontadorValidade"];

$MontadorAnexo = $_POST["MontadorAnexo"];


  $sqlinsert = "Update tb_trabalhador SET Nome='$Nome' ,Morada='$Morada',Email='$Email' AlvaraNumero='$AlvaraNumero',AlvaraValidade='$AlvaraValidade',AlvaraAnexo='$AlvaraAnexo',AcidenteNumero='$AcidenteNumero',cidenteValidade='$AcidenteValidade',AcidenteAnexo='$AcidenteAnexo',SeguroNumero='$SeguroNumero',SeguroValidade='$SeguroValidade',SeguroAnexo='$SeguroAnexo',FinancasValidade='$FinancasValidade',FinancasAnexo='$FinancasAnexo',SocialValidade='$SocialValidade',SocialAnexo='$SocialAnexo',RemuneracaoValidade='$RemuneracaoValidade',RemuneracaoAnexo='$RemuneracaoAnexo',InstaladorNumero='$InstaladorNumero',InstaladorValidade='$InstaladorValidade',InstaladorAnexo='$InstaladorAnexo',MontadorNumero='$MontadorNumero',MontadorValidade='$MontadorValidade',MontadorAnexo='$MontadorAnexo' where id=$id ";
  mysql_query($sqlinsert) or die(mysql_error());
     mysql_query($sqlinsert) or die(mysql_error());

  ?>
  <br>
  <a href="administrador.php">

I have a problem with saving the table again. Does the Update part then have to put all the other data in the Table?

It is already working. But I have a problem with the file. Because I always have to change its contents because it appears blank. For example:

AlvaraValidade<input type="date" name="AlvaraValidade" value="<?php echo $AlvaraValidade; ?>"><p>
AlvaraAnexo<input type="file" name="AlvaraAnexo" value="<?php echo $AlvaraAnexo; ?>"><p>

In this example the first appears the old date and in File does not appear. And then I have to re-insert an attachment.

    
asked by anonymous 18.02.2014 / 10:09

2 answers

7

Changes to sql from

 $sqlinsert = "Update tb_trabalhador
                         id,
                         Nome='$Nome',
                         Morada='$Morada',
                         Email='$Email'
                where id='$id' ";

To:

 $sqlinsert = "Update tb_trabalhador SET
                         Nome='$Nome' ,
                         Morada='$Morada',
                         Email='$Email' 
               where id='$id' ";

For missing the set and remove the id since it will not be updated.

Send id to input hidden

<form action="salvaralteracao.php" method="POST">
   <input type="hidden" name="id" value="<?php echo $id;?> " />

Remember that only one record should be changed, in case your query needs a WHERE

include("conectar.php");
$id = filter_var($_GET['id'],  FILTER_VALIDATE_INT);
$sql = mysql_query("Select* From tb_trabalhador WHERE id = $id");

while($exibe = mysql_fetch_array($sql)){
   $id = $exibe["id"];
   $Nome = $exibe["Nome"];
   $Morada = $exibe["Morada"];
   $Email = $exibe["Email"];
}
    
18.02.2014 / 11:17
3

As far as I understand, you're looking to reshape this update form to work. Here's a way to do it.

In this example only one Change.php file is used, where it identifies whether the request is an edit request or if it is the form request for editing.


Change.php

<html>
<head>
    <title>Alterar</title>
</head>
<body>

<?php
// Inclui arquivo de conexão
include("conectar.php");

// Se for uma requisição POST, faz a ação de salvar as informações
if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{
    $id = $_POST["id"];
    $Nome = $_POST['Nome'];
    $Morada = $_POST['Morada'];
    $Email = $_POST['Email'];

    $sqlinsert = "UPDATE tb_trabalhador SET Nome='{$Nome}', Morada='{$Morada}', Email='{$Email}' WHERE id='{$id}' ";
    mysql_query($sqlinsert) or die(mysql_error());
    ?>

    <br/>
    <a href="administrador.php"> Área Administrador </a>

    <?php
} 
else // Se não for uma requisição POST, mostra o formulário
{
    $id = $_GET['id'];
    $sql = mysql_query("SELECT * FROM tb_trabalhador WHERE id = {$id}");

    // Verifica se recebeu ao menos um resultado (o que se espera)
    if($exibe = mysql_fetch_array($sql))
    {
        // Se recebeu, faz a leitura dos dados
        $id = $exibe["id"];
        $Nome = $exibe["Nome"];
        $Morada = $exibe["Morada"];
        $Email = $exibe["Email"];

        // Imprime formulário pré carregado
        ?>
        <form action="Alterar.php" method="POST">
            <input type="hidden" name="id" value="<?php echo $id; ?>">
            Nome<input type="text" name="Nome" value="<?php echo $Nome; ?>">
            Morada<input type="text" name="Morada" value="<?php echo $Morada; ?>">
            Email <input type="text" name="Email" value="<?php echo $Email; ?>">
            <input type="submit" value="Guardar">
        </form>
        <?php
    }
    else // ID inválido
    {
        // Imprime alerta em javascript e faz o redirecionamento para alguma página
        ?>
        <script>
            alert("ID Inválido!");
            window.location = 'administrador.php';
        </script>
        <?php
    }
}
?>
</body>
</html>

Would this script work? SIM !

But it can still be improved, as it is extremely vulnerable to script injections . .

Some tips to improve:

  • Validate the data in the client with javascript or jQuery before submitting forms;
  • Validate the data when receiving it on the PHP server before doing anything;
  • Try to connect to the database with PDO .

There are many other things that can be improved, but one step at a time.

    
18.02.2014 / 12:28