Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO actualizar BD con foreach

Estas en el tema de actualizar BD con foreach en el foro de PHP en Foros del Web. Buenas tardes a todos. Tengo un problema para actualizar la base de datos con un foreach. Recibo el array con las variables correctamente pero no ...
  #1 (permalink)  
Antiguo 17/03/2014, 14:41
 
Fecha de Ingreso: abril-2010
Mensajes: 52
Antigüedad: 14 años, 1 mes
Puntos: 0
actualizar BD con foreach

Buenas tardes a todos.

Tengo un problema para actualizar la base de datos con un foreach.
Recibo el array con las variables correctamente pero no se realiza el update.

Lo tengo programado así:

<?php
foreach($_POST['fila'] as $key =>$codigos) {

$producto = $_POST['article'][$key];

mysql_select_db($database_cnxConexion, $cnxConexion);
mysql_query("UPDATE pedidos SET nombre='$producto' WHERE key='$codigos'");
}
?>



Alguien que puede decirme donde meto la pata?

Un abrazo,
  #2 (permalink)  
Antiguo 17/03/2014, 16:47
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 10 años, 10 meses
Puntos: 32
Respuesta: actualizar BD con foreach

primero... saca la conexión del foreach! XD por que lo poner dentro?
bueno... no creo que ese sea el problema....
si no nos dice que contiene
$_POST['fila'] y $_POST['article'] es casi imposible para alguein ayudarte... hazle un vardump y dinos el resultado... de lo contrario... ni idea
y una cosa mas... usa el highlight para facilitar el entenderte
  #3 (permalink)  
Antiguo 17/03/2014, 17:24
 
Fecha de Ingreso: abril-2010
Mensajes: 52
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: actualizar BD con foreach

Respuesta en relación al código para modificar varios registros com un foreach desde arrays:

<?php
foreach($_POST['fila'] as $key =>$codigos) {
$producto = $_POST['article'][$key];
mysql_query("UPDATE pedidos SET nombre='$producto' WHERE key='$codigos'");
}
?>


$_POST['fila'] y $_POST['article'] son dos variables que vienen de un form.

Este es el formulario origen de los registros:

<form action="otraPagina.php" method="POST" name="detalleProductos" id="detalleProductos">
<table width="100%" border="0" cellpadding="5" cellspacing="5">
<tr>
<td width="10%" class="fabricant202subr">Linea</td>
<td colspan="3" class="fabricant202subr">Artículo</td>
<td width="27%" class="fabricant202subr"><div align="center">Precio <em>con IVA</em></div></td>
<td width="26%" class="fabricant202subr"><div align="center">Cantidad</div></td>
</tr>
<?php do { ?>
<tr>
<td><input name="fila[]" type="text" class="formFons" id="fila[]" value="<?php echo $row_rsDetallePedidos['key']; ?>" size="5" readonly="readonly" /></td>
<td colspan="3"><select name="article[]" class="formFons" id="article[]">
<?php
do {
?>
<option value="<?php echo $row_rsProductes['nombre']?>"<?php if (!(strcmp($row_rsProductes['nombre'], $row_rsDetallePedidos['nombre']))) {echo "selected=\"selected\"";} ?>><?php echo $row_rsProductes['nombre']?></option>
<?php
} while ($row_rsProductes = mysql_fetch_assoc($rsProductes));
$rows = mysql_num_rows($rsProductes);
if($rows > 0) {
mysql_data_seek($rsProductes, 0);
$row_rsProductes = mysql_fetch_assoc($rsProductes);
}
?>
</select></td>
<td><div align="center">
<input name="preu[]" type="text" class="formFonsSub" id="preu[]" value="<?php echo $row_rsDetallePedidos['precio']; ?>" size="5" />
</div></td>
<td><div align="center">
<input name="cantidad[]" type="text" class="formFonsSub" id="cantidad[]" value="<?php echo $row_rsDetallePedidos['cantidad']; ?>" size="5" />
</div></td>
</tr>
<?php } while ($row_rsDetallePedidos = mysql_fetch_assoc($rsDetallePedidos)); ?>
</table>

<br />
<input name="Submit" type="submit" class="botoCar" id="button" value="Modificar !" />
</form>





Siguiendo el consejo he realizado vardvar_dump sobre:
$_POST['fila'] y $producto

El resultado es el siguiente:

array(2) { [0]=> string(4) "1464" [1]=> string(4) "1465" } string(9) "Viña Real"
array(2) { [0]=> string(4) "1464" [1]=> string(4) "1465" } string(6) "latria"


Espero de vuestra ayuda muy agradecido por vuestro tiempo y pacienccia,

Etiquetas: bd, foreach, mysql, select, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:17.