
combinar arrays en php para generar UPDATES mysql
Publicado por Nata (20 intervenciones) el 02/09/2015 12:09:50
Tengo este form:
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.
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!
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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.
1
2
3
4
5
6
7
8
9
$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!
Valora esta pregunta


0