PHP - combinar arrays en php para generar UPDATES mysql

   
Vista:

combinar arrays en php para generar UPDATES mysql

Publicado por Nata (20 intervenciones) el 02/09/2015 12:09:50
Tengo este form:
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Vainas

combinar arrays en php para generar UPDATES mysql

Publicado por Vainas (254 intervenciones) el 02/09/2015 13:08:34
Buenas:

Una pregunta: ¿Y no te vale haciendo simplemente esto?

<input type="hidden" name="idFrequencia[]" value="<?php echo $idFrequencia; ?>">
<td><input type="checkbox" class="checkbox" name="precenca[]" value="<?php echo $idFrequencia; ?>"></td>

Dejas solo la segunda linea y le pasas un array con los checkbox que ha hecho click.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

combinar arrays en php para generar UPDATES mysql

Publicado por Nata (20 intervenciones) el 02/09/2015 20:44:40
muchas gracias! era simple la solución pero no me daba cuenta.
En el UPDATE : UPDATE frequencia SET precenca = 1 WHERE idFrequencia = %d;", trim($idFrequencia[$i])
deje el valor de precenca fijo.
Gracias nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar