Update in database table

0

I have this code to make updat and field estad o as completed and be the only field that can be edited:

<?php  

    $servername = "xxx.xxx.x.xx";
    $username = "xxxxx";
    $password = "xxxxxxx";
    $dbname = "xxxxxxxx";

    $conn = new mysqli($servername, $username, $password, $dbname);
    $conn->set_charset('utf8');

    $result_cursos = "SELECT centrodb.RegistoManutencao.Id,
           DataRegisto,
           Pedido,
           Outro,
           Descricao,
           Funcionario,
           Imagem,
           Tratamento,
           Estado

    FROM centrodb.RegistoManutencao LEFT OUTER JOIN centrodb.InfoLuvas

    ON centrodb.InfoLuvas.Id = centrodb.RegistoManutencao.Colaborador

    WHERE Estado IS NULL OR Estado <> 'Concluído';";
        $resultado_cursos = mysqli_query($conn, $result_cursos);

    $tabela1 .= '<div style="float: center" table align="center">';

    $tabela1 .= '<table border="5">';

    $tabela1 .= '<tr>';

    $tabela1 .='<thead>';

    $tabela1 .= '<tr>';

    $tabela1 .= '<th>Nº Registo</th>';

    $tabela1 .= '<th>Data</th>';

    $tabela1 .= '<th>Pedido</th>';

    $tabela1 .= '<th>Outro Local</th>';

    $tabela1 .= '<th>Descrição</th>';

    $tabela1 .= '<th>Colaborador</th>';

    $tabela1 .= '<th>Estado</th>';

    $tabela1 .= '</tr>';

    $tabela1 .='</thead>'; 

    $tabela1 .='<tbody>';

        while($rows_cursos = mysqli_fetch_array($resultado_cursos)) {

    $tabela1 .= '<tr>';

    $tabela1 .= '<td>'.$rows_cursos['Id'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['DataRegisto'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['Pedido'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['Outro'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['Descricao'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['Funcionario'].'</td>';

    $tabela1 .= '<td> <input type="checkbox" name= "Id[]" value="'.$rows_cursos['Id'].'"></td>';;

    $tabela1 .= '</tr>'; 
    }
    $tabela1 .= '</tr>';

    $tabela1 .='</tbody>'; 

    $tabela1 .= '</table>';

    $tabela1 .= '</div>';

    echo "<form method='POST' action=''>";

    echo $tabela1;

    echo "<input type='submit' name='registar' value='Registo'>";
    echo "</form>";


    echo "</br>";
    echo "</br>";



    ?>

    <?php  
    if(isset($_POST['registar']))
    {
    $servername = "xxx.xxx.x.xx";
    $username = "xxxx";
    $password = "xxxxxxx";
    $dbname = "xxxxxx";

    $conn = new mysqli($servername, $username, $password, $dbname);
    $conn->set_charset('utf8');

    $id= $_POST['Id'];
    $estado= $_POST['Estado'];

        $conn->query("UPDATE RegistoManutencao SET Estado='$estado' WHERE Id=".$Id); 


    }
    ?>

But when you do update to the table, the fields are blank ....

    
asked by anonymous 09.02.2018 / 16:20

2 answers

0

Second comment, Eles não podem ser editados, só a coluna estado, and how column Estado has invariable value value="Concluído"

I believe that this is what you want:

update the column estado of the% checked_col.%

<?php  
if(isset($_POST['registar']))
{

$servername = "xxx.xxx.x.xx";
$username = "xxxxx";
$password = "xxxxxxx";
$dbname = "xxxxxxx";

$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset('utf8');

$registro = $_POST['Id'];

foreach($registro as $value) { 
    $conn->query("UPDATE RegistoDiario SET Estado='concluido' WHERE Id=" . $value); 
}
............
............

while($rows_cursos = mysqli_fetch_array($resultado_cursos)) {

    $tabela1 .= '<tr>';

    $tabela1 .= '<td>'.$rows_cursos['Id'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['DataRegisto'].'</td>';


    $tabela1 .= '<td>'.$rows_cursos['Dia'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['TipoRefeicao'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['Refeicao'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['Hora'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['Motivo'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['Sugestao'].'</td>';

    $tabela1 .= '<td>'.$rows_cursos['Colaborador'].'</td>';

    $tabela1 .= '<td> <input type="checkbox" name= "Id[]" value="'.$rows_cursos['Id'].'"></td>';

    $tabela1 .= '</tr>'; 
}
}
$tabela1 .= '</tr>';

$tabela1 .='</tbody>'; 

$tabela1 .= '</table>';

$tabela1 .= '</div>';


    echo "<form method='POST' action=''>";
     echo $tabela1;

    echo "<input type='submit' name='registar' value='Registar'>";

    echo "</form>";
?>
  

id(s) will return an array of $registro = $_POST['Id']; checked as checkboxes of checkboxes contains names (brackets) after []

$tabela1 .= '<td> <input type="checkbox" name= "Id[]" value="'.$rows_cursos['Id'].'"></td>';
  

Dai just iterate the array with the update

foreach($registro as $value) { 
    $conn->query("UPDATE RegistoDiario SET Estado='concluido' WHERE Id=" . $value);
}

With input type="radio", Completed or Pending

Replace this line

$tabela1 .= '<td> <input type="checkbox" name= "Id[]" value="'.$rows_cursos['Id'].'"></td>';

by this line

$tabela1 .= '<td> <input type="radio" name= "Id['.$rows_cursos['Id'].']" value="Concluido">Concluído  <input type="radio" name= "Id['.$rows_cursos['Id'].']" value="Pendente"> Pendente</td>';

and in PHP replace names

foreach ($registro as $Id => $estado) {

    $conn->query("UPDATE RegistoDiario SET Estado='".$estado."' Where Id='".$Id."'"); 

}
    
09.02.2018 / 18:19
-1

Try to close TAG input :

$tabela1 .= '<td> <input type="checkbox" name= "Estado" value="Concluído"</td>';

This way:

$tabela1 .= '<td> <input type="checkbox" name= "Estado" value="Concluído" /></td>';
    
09.02.2018 / 17:13