Foros del Web » Programando para Internet » PHP »

generar insert dinamico

Estas en el tema de generar insert dinamico en el foro de PHP en Foros del Web. que tal compañeros buen dia! les explico mi duda ojala puedan aclararme un poco tengo una tabla en BD, esta tabla va generando nuevas columnas ...
  #1 (permalink)  
Antiguo 10/05/2016, 19:22
 
Fecha de Ingreso: febrero-2016
Mensajes: 43
Antigüedad: 8 años, 2 meses
Puntos: 2
generar insert dinamico

que tal compañeros buen dia!

les explico mi duda ojala puedan aclararme un poco

tengo una tabla en BD, esta tabla va generando nuevas columnas ya que el administrador puede registrar cuantos campos desee, segun se valla requiriendo

en esta tabla debo generar un insert dinamico que me traiga en automatico los campos de la tabla,
he intentado con mysqli_fetch_field_direct (para traer los campos de la tabla) y un bucle while pero no tengo mucha idea de como generar el insert dinamico

bueno ojala puedan orientarme un poco ya que me ando iniciando en este mundo de la programacion.

muchas gracias por tu gran ayuda!
  #2 (permalink)  
Antiguo 11/05/2016, 11:55
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: generar insert dinamico

Saludo

Pues ya teniendo ese query, y el while, es cuestión de leer la info
que se obtiene, en este caso, el name de cada registro, e ir registrando
en una variable string cada name y que se vaya concatenando separado
por comas, a la final, se deberá obtener todo el consolidado.


__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 11/05/2016, 12:43
 
Fecha de Ingreso: abril-2016
Mensajes: 65
Antigüedad: 8 años
Puntos: 4
Respuesta: generar insert dinamico

Cita:
Iniciado por webtexcoco Ver Mensaje
que tal compañeros buen dia!

........
, segun se valla requiriendo
amigo primero aclararte que se escribe VAYA con "Y"...

Luego ayudándote en tu problema, podrías poner que error te sale?

talvez te ayude esto

Código PHP:
Ver original
  1. <?php
  2. $con = msql_connect();
  3. if (!$con) {
  4.     die('Server connection problem: ' . msql_error());
  5. }
  6.  
  7. if (!msql_select_db('test', $con)) {
  8.     die('Database connection problem: ' . msql_error());
  9. }
  10.  
  11. $result = msql_query('SELECT id, name FROM people', $con);
  12. if (!$result) {
  13.     die('Query execution problem: ' . msql_error());
  14. }
  15.  
  16. while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
  17.     echo $row['id'] . ': ' . $row['name'] . "\n";
  18. }
  19.  
  20. ?>
  #4 (permalink)  
Antiguo 11/05/2016, 13:18
 
Fecha de Ingreso: febrero-2016
Mensajes: 43
Antigüedad: 8 años, 2 meses
Puntos: 2
Respuesta: generar insert dinamico

gracias a ambos por responder

danteavo92 lo que he tratado hacer es lo siguiente

Código PHP:
Ver original
  1. $enlace = mysqli_connect('localhost', 'mi_user', mi_pass',mi_db');
  2. if (!$enlace) {
  3.     die('No se pudo conectar al servidor MySQL: ' . mysqli_error());
  4. }
  5.  
  6.  
  7. $resultado = mysqli_query($enlace,"select column_name from information_schema.columns where table_name = 'productos';");
  8. $dato = mysqli_query($enlace,"select * from productos;");
  9.  
  10. $cuantos = mysqli_num_rows($resultado);
  11.  
  12. $i = 1;
  13.  
  14. while($i<$cuantos){
  15.     $fieldname = mysqli_fetch_field_direct($dato, $i)->name;
  16.     //echo $fieldname.", ";
  17.     $insert = "insert into cotizacion_producto (".$fieldname.",) values ()";
  18.  
  19.     echo $insert."<br>";
  20.     $i++;
  21. }

y como salida me da

insert into productos (dato1,) values ()
insert into productos (dato2,) values ()
insert into productos (dato3,) values ()
.
.
.
y así sucesivamente. Lo que necesito es solo una linea del insert todos los campos que se generan automáticamente insert into productos (dato1,dato3,dato3) values ()

se que tal ves este cometiendo una tarugada pero denme chance estoy muy verde en progra todavia

bueno ojala puedan orientarme

Gracias de antemano!!

Etiquetas: sql
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 19:05.