Foros del Web » Programando para Internet » PHP »

Consultas MySQL Dinámicas con arrays PHP

Estas en el tema de Consultas MySQL Dinámicas con arrays PHP en el foro de PHP en Foros del Web. Hola amig@s Llevo tiempo pensando en hacer una consulta MySQL en la que sea PHP quien genera esa consulta de forma dinámica según arrays. Cuando ...
  #1 (permalink)  
Antiguo 10/04/2017, 01:23
 
Fecha de Ingreso: mayo-2006
Mensajes: 71
Antigüedad: 17 años, 11 meses
Puntos: 0
Consultas MySQL Dinámicas con arrays PHP

Hola amig@s

Llevo tiempo pensando en hacer una consulta MySQL en la que sea PHP quien genera esa consulta de forma dinámica según arrays. Cuando es solo un campo, aunque sea varias veces, el que hay que insertar es relativamente fácil. Yo lo entiendo de esta manera:

Código PHP:
<?php

$id_producto
=50600;

$identificadores = array(1,50,35);

echo 
"INSERT INTO nombre_tabla (a) VALUES(" implode(","$identificadores) . ")";

?>
Esto suponiendo que el resto de los campos no sean obligatorios.

Como veis en el código hay una variable llamada $id_producto que necesito utilizar, y es que tengo que asociar los números del array $identificadores a el producto en cuestión quedando la consulta de la siguiente forma:

Código:
INSERT INTO nombre_tabla (a,b) VALUES(56000,1),(56000,50),(56000,35);
Con implode(); no me sirve ya que solo muestra los valores del array aunque creí que al formar un array asociativo me ayudaría un poco mas.

Mi intención es hacer un código mas dinámico donde JavaScript se encargara de mandarnos los parámetros y nosotros interpretarlos de esta manera.

Saludos
  #2 (permalink)  
Antiguo 10/04/2017, 05:02
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 566
Antigüedad: 18 años, 5 meses
Puntos: 24
Respuesta: Consultas MySQL Dinámicas con arrays PHP

Puedes usar array_map para hacer el producto cartesiano

Código PHP:
Ver original
  1. <?php
  2.  
  3. $id_producto=50600;
  4.  
  5. $identificadores = array(1,50,35);
  6.  
  7. $producto = array_map(function($identificador) use($id_producto){
  8.     return "({$id_producto},{$identificador})";
  9.  
  10. }, $identificadores);
  11.  
  12. echo "INSERT INTO nombre_tabla (a) VALUES(" . implode(",", $producto) . ")";
__________________
www.marcher.com.uy - Web personal
Nerd's Corner - Desarrollo de software a medida
  #3 (permalink)  
Antiguo 10/04/2017, 17:17
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Consultas MySQL Dinámicas con arrays PHP

Lo que pretendes es hacer un objeto al estilo ORM, que lo que haces es contruir consultas de manera dinamica.

Lo que tienea que hacer es crear una clase y setear los diferentes funciones y variables de clase que se encargaran de escribir la parte de sql correspondie te con sus valores, para al final enviar todo eso a un constructor sql que ajuntará todas las partes para formar el sql final, despues solo te faltara una funcion donde recibira el sql ya construido, y lo ejecutara.

Si no tienes idea de como plantear eso, puedes guiarte de mi clase y aprender el concepto y construir tu propio gestor de base de datos al mas puro estilo orm.

https://github.com/cdiazr/PDOManager...PDOManager.php

El mio gestiona PDO para no tener que tener una clase para cada tipo de base de datos, con pdo puedes manejar varios sin tener que cambiar el sql ni usar diferentes conexiones.

Espero te sirva

Etiquetas: arrays, mysql, 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 14:13.