Insert two checkbox in different fields in mysql

Asked

Viewed 82 times

0

I have this code that creates this table with the first two fields already filled in pattern:

<?php
$result_cursos = "SELECT nome,
                         Quarto 

FROM centrodb.utentes

WHERE descricaovalencia = 'LAR' AND nome <> 'CLASSE' AND ativo = '1' ORDER BY nome ASC;";

    $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>Utente</th>';

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

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

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

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

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

$tabela1 .= '</tr>';

$tabela1 .='</thead>'; 

$tabela1 .='<tbody>';

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


$tabela1 .= '<tr>';

$tabela1 .= '<td> <input type="text" size="45" name= "NomeUtente[]" id= "NomeUtente" value="'.$rows_cursos['nome'].'"></td>';

$tabela1 .= '<td> <input type="text" size="1" name= "Quarto[]" id= "Quarto" value="'.$rows_cursos['Quarto'].'"></td>';

$tabela1 .= '<td> <input type="datetime-local" name= "DataRegisto[]" id= "DataRegisto"></td>';

$tabela1 .= '<td> <input type="checkbox" name= "Miccao[]"  value="Realizado"> Realizado <input type="text" name= "Tipo1[]" id= "Tipo1" size="30" ></td>';

$tabela1 .= '<td> <input type="checkbox" name= "Dejeccao[]" value="Realizado"> Realizado <input type="text" name= "Tipo[]" id= "Tipo" size="30" ></td>';

$tabela1 .= '<td> <select name="Colaborador[]" id="Colaborador">
   <option value="ANA CRISTINA MACHADO FERREIRA">ANA CRISTINA MACHADO FERREIRA</option>
   <option value="ANA PAULA PEREIRA BARBOSA">ANA PAULA PEREIRA BARBOSA</option>
   <option value="ANA PAULA SANTOS FLORES SILVA GONÇALVES">ANA PAULA SANTOS FLORES SILVA GONÇALVES</option>
   <option value="ANABELA OLIVEIRA FERNANDES DE MOURA CAMPOS">ANABELA OLIVEIRA FERNANDES DE MOURA CAMPOS</option>
   <option value="CLARINDA ROSA GONÇALVES MOREIRA FERNANDES">CLARINDA ROSA GONÇALVES MOREIRA FERNANDES</option>
   <option value="EUNICE MIRIAM MARTINS AZEVEDO">EUNICE MIRIAM MARTINS AZEVEDO</option>
   <option value="FERNANDA ALMEIDA">FERNANDA ALMEIDA</option>
   <option value="FERNANDA MARIA VASQUES MENDONÇA PEREIRA">FERNANDA MARIA VASQUES MENDONÇA PEREIRA</option>
   <option value="FLORINDA MARIA SANTOS CARDOSO DA COSTA PINTO">FLORINDA MARIA SANTOS CARDOSO DA COSTA PINTO</option>
   <option value="GEORGINA MARIA MATOS DE CARVALHO ARAÚJO">GEORGINA MARIA MATOS DE CARVALHO ARAÚJO</option>
   <option value="ISABEL MARIA GONÇALVES RODRIGUES GRAÇA">ISABEL MARIA GONÇALVES RODRIGUES GRAÇA</option>
   <option value="ISABEL MARIA MATOS MEIRELES BARROS BARGE">ISABEL MARIA MATOS MEIRELES BARROS BARGE</option> 
   <option value="JOANA RAQUEL COSTA LOPES">JOANA RAQUEL COSTA LOPES</option>
   <option value="LUISA DA CONCEIÇÃO COELHO DE ALMEIDA">LUISA DA CONCEIÇÃO COELHO DE ALMEIDA</option>
   <option value="MARIA ALICE SANTOS MAIA">MARIA ALICE SANTOS MAIA</option>
   <option value="MARIA BERNADETE MONTEIRO MOREIRA">MARIA BERNADETE MONTEIRO MOREIRA</option>
   <option value="MARIA CONCEIÇÃO ALMEIDA MARTINHO DIAS">MARIA CONCEIÇÃO ALMEIDA MARTINHO DIAS</option>
   <option value="MARIA DE JESUS BENTO MENDES">MARIA DE JESUS BENTO MENDES</option>
   <option value="MARIA HELENA TEIXEIRA FERREIRINHA">MARIA HELENA TEIXEIRA FERREIRINHA</option> 
   <option value="MARIA JOSÉ NOGUEIRA RODRIGUES PEREIRA">MARIA JOSÉ NOGUEIRA RODRIGUES PEREIRA</option>
   <option value="MARIA MANUELA MARTINS MORENO">MARIA MANUELA MARTINS MORENO</option>
   <option value="MONICA ALEXANDRA HORA GOMES MEDEIROS">MONICA ALEXANDRA HORA GOMES MEDEIROS</option>
   <option value="MÁRIO ANTÓNIO MOREIRA FERREIRA">MÁRIO ANTÓNIO MOREIRA FERREIRA</option>
   <option value="PATRÍCIA ALEXANDRA SILVA INÁCIO">PATRÍCIA ALEXANDRA SILVA INÁCIO</option>   
   <option value="PAULA CRISTINA RIBEIRO DA SILVA RODRIGUES">PAULA CRISTINA RIBEIRO DA SILVA RODRIGUES</option>
   <option value="PAULA MARIA RODRIGUES DA SILVA">PAULA MARIA RODRIGUES DA SILVA</option>
   <option value="PEDRO MONTEIRO">PEDRO MONTEIRO</option>
   <option value="SILVIA MANUELA DA SILVA BORGES">SILVIA MANUELA DA SILVA BORGES</option>  
</select></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>";

?>

After creating the table, I have this code to insert into the database table. You can only insert the table row I fill.

<?php
if(isset($_POST['registar']))
{
for ($i=0;$i<count($_POST["NomeUtente"]);$i++) {
    $utente = $_POST['NomeUtente'][$i];
    $quarto = $_POST['Quarto'][$i];
    $data = $_POST['DataRegisto'][$i];
    $miccao = $_POST['Miccao'][$i];
    $tipo1 = $_POST['Tipo1'][$i];
    $dejeccao = $_POST['Dejeccao'][$i];
    $tipo = $_POST['Tipo'][$i];
    $colaborador = $_POST['Colaborador'][$i];

    $sql = "INSERT INTO registoMiDe (NomeUtente, Quarto, DataRegisto, Miccao, Tipo1, Dejeccao, Tipo, Colaborador) VALUES ('$utente', '$quarto', '$data', '$miccao', '$tipo1', '$dejeccao', '$tipo', '$colaborador')";
$res = mysqli_query($conn,$sql);

}
}
?>

The problem is that when I fill only one checkbox on each line as shown in the image: inserir a descrição da imagem aqui

it inserts the checkbox values on the same line and cannot. In the first one you should only enter the value of the urination checkbox and in the second the value of the dejection checkbox. I show how they are filling in erroneously in the database table in the image: inserir a descrição da imagem aqui

  • 1

    No, the meucode is all here. The problem is that the code only records the correct checkbox in the first row of the table that I show to the user. After that row or mark the two checkbox or else insert the two empty columns

1 answer

2


The behavior of the html input type="checkbox" is to send to the server-side only checkboxes marked

The way you are doing when submitting the form:

inserir a descrição da imagem aqui

will return

Array ( [0] => ABEL DE FIGUEIREDO PINTO [1] => ADELINO VALE LOUREIRO ) 
Array ( [0] => 16 [1] => 30 ) 
Array ( [0] => 2018-03-31T15:00 [1] => 2018-03-31T15:00 ) 
Array ( [0] => Realizado )  //faltando [1]
Array ( [0] => Realizado )  //faltando [1]
Array ( [0] => MARIA JOSÉ NOGUEIRA RODRIGUES PEREIRA [1] => MARIA JOSÉ NOGUEIRA RODRIGUES PEREIRA ) 

So when performing the loop for as sql you will be:

for $i=0

INSERT INTO registoMiDe (NomeUtente, Quarto, DataRegisto, Miccao, Tipo1, Dejeccao, Tipo, Colaborador) 
VALUES ('ABEL DE FIGUEIREDO PINTO', '16', '2018-03-31T15:00', 'Realizado', '', 'Realizado', '', 'MARIA JOSÉ NOGUEIRA RODRIGUES PEREIRA')

for $i=1

INSERT INTO registoMiDe (NomeUtente, Quarto, DataRegisto, Miccao, Tipo1, Dejeccao, Tipo, Colaborador) 
VALUES ('ADELINO VALE LOUREIRO', '30', '2018-03-31T15:00', '', '', '', '', 'MARIA JOSÉ NOGUEIRA RODRIGUES PEREIRA')

You will succeed this way

PHP

if(isset($_POST['registar']))
{
$NomeUtente = $_POST['NomeUtente'];

for ($i=0;$i<count($_POST["NomeUtente"]);$i++) {
    $utente = $NomeUtente[$i];
    $quarto = $_POST['Quarto'][$i];
    $data = $_POST['DataRegisto'][$i];
    $miccao = $_POST['Miccao'][$i];
    $tipo1 = $_POST['Tipo1'][$i];
    $dejeccao = $_POST['Dejeccao'][$i];
    $tipo = $_POST['Tipo'][$i];
    $colaborador = $_POST['Colaborador'][$i];
    ..............................

and on the form

no while increment a counter by concatenating the $j except in Nomeutente[]

$j=0;
while($rows_cursos = mysqli_fetch_array($resultado_cursos)) {

$tabela1 .= '<tr>';

$tabela1 .= '<td> <input type="text" size="45" name= "NomeUtente[]" id= "NomeUtente" value="'.$rows_cursos['nome'].'"></td>';

$tabela1 .= '<td> <input type="text" size="1" name= "Quarto['.$j.']" id= "Quarto" value="'.$rows_cursos['Quarto'].'"></td>';

$tabela1 .= '<td> <input type="datetime-local" name= "DataRegisto['.$j.']" id= "DataRegisto"></td>';

$tabela1 .= '<td> <input type="checkbox" name= "Miccao['.$j.']" value="Realizado"> Realizado <input type="text" name= "Tipo1['.$j.']" id= "Tipo1" size="30" ></td>';

$tabela1 .= '<td> <input type="checkbox" name= "Dejeccao['.$j.']" value="Realizado"> Realizado <input type="text" name= "Tipo['.$j.']" id= "Tipo" size="30" ></td>';


$tabela1 .= '<td> <select name="Colaborador['.$j.']" id="Colaborador">
....................
....................

$j++;
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.