Código :
<?php while ($result = mysqli_fetch_array($query)) { $idFrequencia = $result['idFrequencia']; $nomeOficina = utf8_encode($result['nomeOficina']); $nomeParticipante = utf8_encode($result['NomeParticipante']); $precenca = utf8_encode($result['precenca']); ?> <td><?php echo $idFrequencia; ?></td> <td><?php echo $nomeParticipante; ?></td> <input type="hidden" name="idFrequencia[]" value="<?php echo $idFrequencia; ?>"> <td><input type="checkbox" class="checkbox" name="precenca[]" value="1"></td> </tr> <?php } ?>
Quiero generar un update para cada registro de la tabla.
lo que pasa es que al no seleccionar alguno de los checkbox los arrays quedan de diferente dimensión.
Código :
$idFrequencia = isset($_POST['idFrequencia']) ? $_POST['idFrequencia'] : null; $precenca = isset($_POST['precenca']) ? $_POST['precenca'] : null; $idFrequenciaPrecenca = array_combine(array_intersect_key($idFrequencia, $precenca), array_intersect_key($precenca, $idFrequencia)); foreach($idFrequenciaPrecenca as $key => $value) { //recorro el array if (!empty($key) || !empty($value)) {$sql=sprintf("UPDATE frequencia SET precenca = %d WHERE idFrequencia = %d;", trim($value), trim($key));} $sqls[$i] = $sql; $i++; }
al no seleccionar un checkbox los arrays quedan asi:
Array1
(
[0] => 5
[1] => 6
[2] => 7
)
Array2
(
[0] => 1
[1] => 1
)
lo cual hace que modifique un registro que no debería ser modificado.
como puedo hacer para que los arrays tengan una misma dimensión?
o alguna otra solucion para generar los UPDATES?
Desde ya gracias!