PHP - Guardar arreglo bidimensional asociativo en MySQL

 
Vista:
sin imagen de perfil

Guardar arreglo bidimensional asociativo en MySQL

Publicado por Fernando de la O (5 intervenciones) el 22/09/2014 03:46:40
Hola amigos del foro, tengo un problema creo que no muy grave pero ya busque por otros temas de foro PHP y no me queda claro aun como puedo almacenar este arreglo en una tabla de MySQL que tiene como campos: id, idpromocion, idproducto, precio.


El código PHP que utilizo es el siguiente:

$idproducto = array($_REQUEST['idproducto']);
$precio = array($_REQUEST['precio']);

foreach (array_keys($idproducto) as $key) {

mysql_query("INSERT INTO promociones_p (idpromocion, idproducto, precio) VALUES ('$idpromocion','$idproducto[$key]','$precio[$key] ')",$link);

}

De antemano 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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Guardar arreglo bidimensional asociativo en MySQL

Publicado por xve (6935 intervenciones) el 22/09/2014 08:49:11
Hola Fernando, exactamente que contiene: $_REQUEST['idproducto'] y $_REQUEST['precio']?

Si nos muestras su contenido, intento indicarte una manera de hacerlo.
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
sin imagen de perfil

Guardar arreglo bidimensional asociativo en MySQL

Publicado por Fernando de la O (5 intervenciones) el 22/09/2014 14:50:08
Buenos dias bueno tengo un listado de productos dinamico cada producto tiene un checkbox que manda el id del producto y un input tipo text donde el usuario escribe el precio a cada producto que tenga el estado del checkbox, la idea es que el usuario pueda aplicar un precio de promocion a varios productos al mismo tiempo, entonces lei que para poder hacer eso ocupo darles un nombre a los campos de tipo array osea


< input type="text" name="precio[ ]" />

Y tengo pero tipo checkbox con nombre idproducto[ ]

No se si me explico...?

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
sin imagen de perfil

Guardar arreglo bidimensional asociativo en MySQL

Publicado por Fernando (5 intervenciones) el 22/09/2014 16:37:11
Esta es una captura de pantalla del listado de productos... Entonces pues cada checkbox activo te habilita el campo de texto para ingresar el precio al finalizar hay un boton que envia los datos y bueno lo que se envia el precio y el checkbox el id del producto...
capturaPantalla
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
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Guardar arreglo bidimensional asociativo en MySQL

Publicado por Gonzalo (615 intervenciones) el 22/09/2014 19:59:32
el imortante es el checkbox, asegurate de que el id esta en el value y que el checkbox este activado, yo te recomendaria mejor usar un hidden en lugar del checkbox ya que si por error lo desactivan tal vez el request no lo detecte, yo manejo mas el $_POST, si quieres hacer el cambio te recomendaria que usaras este codigo

< input type="text" name="precio[ ]" /> // hasta donde entiendo en php no se manejan arrays de esta manera (alguien corrijame por favor)

puedes usar

< input type="text" name="precio[01]" />
o
< input type="text" name="precio01" /> // esta nomenclatura es el que yo uso siempre, igual con el checkbox

ahora al enviar la pagina al explorador debes recuperar cada campo, suponiendo que primero esta el checkbox y despues el inputbox entonces es facil determinar en que orden van a llegar los objetos.

(en la pagina que atiende el post)

$id="";
$precio=0; //inicializamos

foreach($_POST as $o=>$v)
{
if(substr($o,0,4)=="CheId") // no se el nombre del checkbox, me imagine que es CheId
{
$Id=$v;
}

if(substr($o,0,4)=="Preci")
{
$Precio=$v;

//aqui preparas el query y mandas el update.

$id="";
$precio=0; //re-inicializamos
}

}

listo.

esa es la idea basica, espero sea de ayuda, suerte, salu2.
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

Guardar arreglo bidimensional asociativo en MySQL

Publicado por Fernando de la O (5 intervenciones) el 23/09/2014 15:15:51
Hola gracias por tu sugerencia y cn respecto a tu duda de si se puede o no manejar variable como las que manejo precio[ ] si es posible de hecho es un metodo mas facil para enviar valores y tengan una sintaxis tipo array, te ahorras el reinicializar y muchas lineas de codigo pero cuando se envia un arreglo bidimensional tengo la duda de como extraer esos valore ya que cuando solo envio los id de los productos cn el check box estos de almacenan de forma correcta cn el foreach y lo que ando buscando es almacenar en otra tabla el id del producto y su precio utilizando nombres de variable tipo array.
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