Bienvenido, Invitado
Nombre de Usuario: Contraseña:

TEMA: Calcular datos de una tabla-DB y pasar el resultad

Calcular datos de una tabla-DB y pasar el resultad 5 años 7 meses antes #3995

  • sinclavos
  • Avatar de sinclavos
  • Fuera de línea
  • Fresh Boarder
  • Mensajes: 14
  • Karma: 0
Estimados codigolegas, si alguien tuviera el deseo de quebrarse la cabeza un rato para darle el toque final a este procedimiento le estaría muy agradecido. He estado dándole vuelta y vuelta pero no logro encontrar el código adecuado.

1.- Tengo un Formulario (1) llamado Registro de Personas (“regpers”) que permite registrar una serie de personas (no necesariamente miembros) con los siguientes campos:
“id”, “nombre” (entre otros)

Esto produce una Tabla en la BD llamada “regpers”

2.- Tengo otro Formulario (2) llamado Calificar Personas (“califpers”) que permite ponerle notas a las personas. Los usuarios deben estar registrados y Logged in para poner nota y su identidad sale de “j17_users”.
El Formulario (2) tiene los siguientes campos:
“nombre”: Lista de Selección simple que es poblado con los nombres de personas extraídos de la Tabla “regpers” de la BD.
“nota”: 3 radioB dependientes que califican a las personas con los valores “10”, “5” o “0”.
“username1”: “id” del que hace la calificación y está Logged in.
“regDate”: fecha en que se hace la calificación.

Esto produce la Tabla “califpers” en la BD.

3.- Tengo otro Formulario (3) llamado Ver Detalle Calificaciones (vercalif) donde mediante una Lista de Consultas a la Tabla “califpers” puedo ver el detalle de todas las calificaciones hechas por todos los usuarios a todas las personas:

Orden Fecha Persona Calificación Autor Calificación
“id” “regDate” “nombre” “nota” “username1”
1 1-02 A 5
2 5-02 B 10
3 15-04 A 10
4 4-05 C 0
5 25-05 A 10
6 9-06 B 5
7 11-06 B 0
8 30-06 B 5


4.- Tengo otro Formulario (4) llamado Promedio de Calificaciones (verpromnotas) donde mediante una Lista de Consultas a la Tabla “califpers” puedo ver el promedio de calificaciones recibidas por cada persona y la cantidad de usuarios que han hecho las calificaciones:

Persona Promedio Nº Calificaciones
“nombre” “avg” “frec”
A 8,3333333 3
B 5 4
C 0 1


5.- Tengo dos Formularios (5 y 6) llamado Ingresar Oferta Personas donde distintas personas (registradas (5) o no registradas (6)) ofrecen distintos productos. Estos formularios tienen los siguientes campos:
“producto”, “email” y otros campos que describen el producto
“nombre”: seleccionado desde la Tabla “regpers” de la BD (5) en caso que la persona esté Logged in, o tienen el Valor: “Anónimo” (6) en caso que no esté Logged in.
Estos formularios producen las Tablas “regofertas” y “regofertasnr” en la BD. Tengo que traspasar a mano los datos de la Tabla “regofertasnr” a la Tabla “regofertas” para que no ingresen elementos indeseados por parte de usuarios anónimos.


6.- Por último, Tengo un Formulario (7) llamado Ver Ofertas (“verofertaspers”) donde mediante una Lista de Consultas extraigo los datos de las primeras 4 columnas de la Tabla “regofertas”:

Titulo Oferta Producto Persona Contacto Promedio Nº Calificaciones
“titoferta” “producto” “nombre” “email” “avg” “frec”
---- 1 A ---- 8,3333333 3
2 B
5 4
3 A
8,3333333 3
4 C
0 1
5 A
8,3333333 3
6 B
5 4
7 B
5 4
8 B
5 4

Los datos de las últimas 2 columnas debería sacarlos de la Tabla “promnotas” de la BD, pero no existe ninguna Tabla en la BD llamada “promnotas” porque esos datos sólo existen en una Lista de Consultas (Formulario (4)). No he podido generar un código que me permita extraer los datos dispersos del Formulario (3) (Tabla “califpers”) sacar los promedios y frecuencias e introducir los datos calculados y agrupados para cada “nombre” en una Tabla nueva llamada “promnotas”. Por ahora sólo puedo hacerlo a mano.
He intentado con varios códigos MySql como:

SELECT avg(c.nota) as avg INTO #__promnotas as p
FROM #__califpers as c GROUP BY nombre

o

$rows = ff_select(
"SELECT"
"avg(nota) as avg, ".
"nombre as nombre ".
"FROM #__califpers".
"GROUP BY nombre ".
"INSERT INTO #__promnotas"
);

y

$rows = ff_select(
"SELECT"
" avg(c.nota) as avg ".
"INTO #__promnotas as p ".
"FROM #__califpers as c ".
"GROUP BY nombre"
);

pero ninguno me resulta.


Si alguién me puede dar una mano se lo agradecería, y si además sabe como dejar los valores de "avg" con 1 sólo decimal, yo doble feliz.

Gracias chiquillos disculpen la lata. En el adjunto mando los códigos por si alguién tiene tiempo para echarle una miradita.

Archivo Adjunto:

Nombre del Archivo: CODIGOS.doc
Tamaño del Archivo:41 KB
El administrador ha desactivado la escritura pública.
Moderadores: gonzacha
Tiempo de carga de la página: 0.289 segundos
Gracias a Foro Kunena