Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

ayuda con rellenar datos de una tabla

Estas en el tema de ayuda con rellenar datos de una tabla en el foro de Mysql en Foros del Web. Buen dia foreros, tengo el siguiente problema: Paso desde php unos datos desde un txt a una tabla con la informacion de una encuesta para ...
  #1 (permalink)  
Antiguo 28/05/2008, 07:34
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 17 años, 11 meses
Puntos: 0
ayuda con rellenar datos de una tabla

Buen dia foreros, tengo el siguiente problema:
Paso desde php unos datos desde un txt a una tabla con la informacion de una encuesta para mi trabajo, pero la tabla me queda asi:

id_pregunta pregunta_numero valor opcion
1---------------------p1----------------------1 ----------M
2--------------------- -------------------- 2 ---------F
3 -------------------- p2 -------------------- 1--------- SI
4 -------------------- -------------------- 2 ---------NO
5 -------------------- -------------------- 3---------NS/NC
6 -------------------- p3 -------------------- 1---------SI
7 -------------------- -------------------- 2 ---------NO
8 -------------------- -------------------- 3 --------- A VECES


yo necesito poner en id_pregunta = p1; en id_preguntas 4 y 5 el valor p2 y asi sucesivamente, o sea recorrer la tabla y, en donde pregunta_numero esta vacio, buscar el valor anterior y reemplazarlo por el correspondiente.....
Alguna idea como hacerlo?
Puede ser desde mysql, o desde php.

Muchas gracias!!!!!
  #2 (permalink)  
Antiguo 28/05/2008, 08:30
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: ayuda con rellenar datos de una tabla

SAludos gutibs.

En php te podria dar una idea haber quetal te parece:

Si te fijas en la separacion del primer campo ahi aproximadamente 20 espacios si conte bien...
1---------------------p1

Tendrias que crear un program en php que te lea ese archivo utilizando la funcion fgetcsv y como separador de campo el - . Lo que validarias en que al momento que llegue al espacio 20 realice el insert en la base de datos y asi sucesivamente con los campos siguientes. En resumnidas cuentas debes fijarte cuantos espacios separan un campo del otro y ese validarlo en tu codigo, ya que si te fijas bien las separacion de un campo a otro es estandar y te quedara mas facil programarlo. No se si me halla explicado bien, de igual forma si tienes alguna duda lo comentas.

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 28/05/2008, 08:39
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: ayuda con rellenar datos de una tabla

Nano, gracias por el interes, en realidad los ----- los puse yo para que quede prolijo el dibujito de la tabla.
mi tabla es asi:

id_pregunta: 1
pregunta _numero: p1
valor: 1
opcion: M

id_pregunta: 2
pregunta_numero: (vacia)
valor: 2
opcion: F

id_pregunta: 3
pregunta_numero: p2
valor: 1
opcion: SI

y asi sucesivamente.
yo necesito rellenar los campos vacios con el valor de pregunta_numero que corresponde.
Se entiende?
Gracias de nuevo
  #4 (permalink)  
Antiguo 28/05/2008, 08:45
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Pregunta Respuesta: ayuda con rellenar datos de una tabla

Saludos...

No te entendi .... Primero que todo dime como tienes tu archivo txt generado y dime cuando tienes por ejemplo esta linea:
Cita:
id_pregunta: 2
pregunta_numero: (vacia)
valor: 2
opcion: F
Que se deberia insertar en el campo pregunta_numero exactamente.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 28/05/2008, 08:50
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: ayuda con rellenar datos de una tabla

nano, yo al txt le hago de todo ( originalmente es un reporte de SPSS), al cual le hago ereg, explode y monton de cosas mas para finalmente insertar en mysql la tabla como dije ( a ver si me sale algun dibujito)

id_pregunta | pregunta_numero | valor | opcion |
--------------------------------------------------------------|
1 | p1 | 1 | SI |
---------------------------------------------------------------
2 | | 2 | NO |
--------------------------------------------------------------|

y asi. yo necesito recorrer la tabla y reemplazar los campos pregunta_numero por el valor anterior, se entiende?
  #6 (permalink)  
Antiguo 28/05/2008, 09:02
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: ayuda con rellenar datos de una tabla

Saludos..

Ok ya creo que ntendi. Sin importar el valor que vallas a insertar puedes utlizar como te indique anteriormente con la funcion fgetcsv y validar campo por campo al momento que llegue a ese debes verificar si esta vacio en dado caso que no debe insertar el valor anterior guardado en una variable temporal que en este caso me imagino que seria p1 y asi sucesivamente... No se si esto sea lo que necesitabas pero asi es que lo entendi
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 28/05/2008, 13:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: ayuda con rellenar datos de una tabla

Creo que esto lo harías mejor con PHP y mediante arrays y tal vez con un preg_match_all, pero eso deberías preguntarlo en el foro PHP.
Pero si sólo lo vas a hacer una vez y ya lo tienes en la base como dices, y no hay un número de registros en blanco demasiado grande entre dos registros con número de pregunta, esta "chapucilla total" aplicada en el PHPMyAdmin sobre tu base y pulsado el botón hasta que no que ya no se produzca un cambio, creo que lo hará:

update nombretabla g inner join nombretabla gu on g.id_pregunta = gu.id_pregunta + 1 set g.pregunta_numero = gu.pregunta_numero where g.pregunta_numero = '' and gu.pregunta_numero != ''

Lo que hace es añadir el número de pregunta a un registro que no lo tiene, usando para ello el del anterior que lo tiene; va uno a uno en la separación, pero si tienes como máximo 10 registros con ese campo en blanco entre otros con ese dato, sólo pulsarás 10 veces el botón del phpmyadmin para hacer la consulta de actualización y los tendrás todos. Vigila no haber dejado fuera ningún p con su número, pues te marcaría con la p de la pregunta posterior.
Cuento con que las preguntas aparecen en orden en el archivo de texto y que los registros han sido cargados en MySQL en ese orden.
Pruébalo, aunque no es muy profesional, pues, como te dice Nano_, esto con PHP y los arrays o con variables será más fácil.

Última edición por jurena; 28/05/2008 a las 16:27
  #8 (permalink)  
Antiguo 29/05/2008, 08:25
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: ayuda con rellenar datos de una tabla

Buenisimo, lo voy a probar, muchisimas gracias!!!
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 16:20.