Autor
|
Tema: totalmente neofito en programación PHP y MySQL "reportes de registros espcificos (Leído 3,202 veces)
|
Platanito Mx
Desconectado
Mensajes: 889
|
Tengo una BD en MySQL la cual tien diferentes tablas
Una tabla que se llama usuarios Una tabla se llama computadoras donde tengo los campos: Marca, Modelo, Fabricante, SO, etc. Pero en esa tabla no aparece la marca HP, lo que aparece es el numero 1, lo mismo con el fabricante, lo mismo con el SO Una tabla que se llama marca, donde 1 = IBM, 2 = HP, 3 = Toshiba, etc. etc.
Quiero hacer un reporte en el cual escriba el nombre del usuario y me aparezcan los datos de la computadora que tiene asiganada, en este caos hablo de computadoras, pero tambien quiero que aparezca las impresoras, telefonos, perifericos, etc.
No sé por donde iniciar, busco en google reportes php mysql pero no aparece el cómo escribir lo que quiero buscar, o no encuentro como escribir el nombre y que haga la busqueda en las diferentes tablas, etc. etc.
quisiera que me ayudaran con una breve explicación, o que me digan...usa inner join, crea una vista primero, etc. etc. y para que puedas escribir el "nombre" y haga la busque sobre lo que escribiste haz esto y esto
Espero poder haber sido claro y me puedan ayudar, gracias.
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
Vas por buen camino.
Supongo que a un usuario le corresponde una computadora. Entonces como dices tienes tus tablas USUARIOS, COMPUTADORAS, MARCAS, MODELOS, SO.
En primer lugar debes tener ya registrada las computadoras antes de poder asignarlas al usuario. en la tabla COMPUTADORAS debes además de tener los ID de la marca y modelos otro ID (un SK [SuperKey] de tipo autoincrement o podría ser el número de serie) también debes tener una llave foranea del usuario (fk) la cual tendria que poder ser null en todo caso y se va a actualizar cada vez que asignes una computadora. (computer_id, user_fk, computer_stamp, computer_model, computer_so, etc)
Por otro lado tienes los usuarios con sus atributos correspondientes (user_id, user_name, etc)
Una vez que tengas registrada las computadoras (no sé si el registro sea por formulario en php) se procede a la asignación de máquinas.
Utilizando INNER JOIN relacionas las tablas (USUARIOS-COMPUTADORAS y COMPUTADORAS-MARCAS-MODELOS-SO) para crear una vista y facilitar la tarea. (Al estar relacionadas estas solo te mostrará las computadoras que están asignadas junto con los usuarios)
Para finalizar en tu formulario donde tendrás un input tipo text en el cual se escribirá el nombre (no sé si del usuario o la computadora) y mediante AJAX o javascript puedes mostrar tu información en la misma página cada vez que se realice una consulta o bien del modo más facil puedes enviar por POST o GET el ID del usuario y recogerlo en otra página y mostrar la información.
En tu consulta a la vista tendrías algo como
SELECT * FROM ver_asignaciones WHERE user_name LIKE '%juan perez%'
Espero haberte ayudado un poco.
Saludos.
|
|
« Última modificación: 3 Septiembre 2015, 19:01 pm por 1mpuls0 »
|
En línea
|
abc
|
|
|
Platanito Mx
Desconectado
Mensajes: 889
|
Gracias Darhius
No sé que tan bueno sea lo siguiente:
Generar una vista para las computadoras por usuario Generar una vista para las impresoras por usuario Generar una vista para los telefonos por usuario etc. etc.
despues hacer en PHP la conexion a la BD después hacer la consulta en las tablas ¿esta bien?
|
|
|
En línea
|
|
|
|
s7evin
Desconectado
Mensajes: 23
|
SELECT `los_campos_que_necesites` FROM `usuario` INNER JOIN `computadora` ON `computadora`.`ID` = `usuario`.`computadora_ID` INNER JOIN `marca`.`ID` ON `computadora`.`marca_ID` = `marca`.`ID` /* y así con todas las tablas que necesites (no te pases jeje) */ WHERE `usuario`.`nombre` = "pericodelopalotes" LIMIT 1 /* si solo quieres 1 solo resultado */ Ten en cuenta que con el INNER JOIN de `computadora` solo aparecerá el usuario si tiene asignado un PC, sino no deolverá resultado. Si por el contrario necesitas que devuelva el usuario aunque no tenga asignado un PC, deberás usar otro tipo de JOIN, como puede ser el LEFT. Espero que te sirva de ayuda. Saludos!
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
Gracias Darhius
No sé que tan bueno sea lo siguiente:
Generar una vista para las computadoras por usuario Generar una vista para las impresoras por usuario Generar una vista para los telefonos por usuario etc. etc.
despues hacer en PHP la conexion a la BD después hacer la consulta en las tablas ¿esta bien?
El punto es que una vista en realidad es una tabla, pero facilitan mucho las consultas sobre todo cuando tienes que relacionar información muy parecida. En lo personal para mi es buena idea que realices la creación de las vistas ayudan mucho cuando se relaciona entre varias tablas.
|
|
|
En línea
|
abc
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
MySQL, reporte "Registros duplicados" (Solucionado)
« 1 2 3 »
Bases de Datos
|
AlbertoBSD
|
20
|
80,618
|
19 Junio 2009, 05:58 am
por AlbertoBSD
|
|
|
[?] MySQL "Registros Faltantes" Optimizar Consulta
Bases de Datos
|
AlbertoBSD
|
4
|
10,765
|
19 Abril 2009, 08:06 am
por -explicito-
|
|
|
Ayuda con conteo de registros en php y mysql
« 1 2 »
PHP
|
RedZer
|
13
|
9,760
|
5 Diciembre 2010, 20:28 pm
por RedZer
|
|
|
¿Que lenguaje de programacion me recomiendan para empezar totalmente desde cero?
Programación General
|
Zenom
|
6
|
9,145
|
12 Marzo 2011, 19:05 pm
por Ragnarok
|
|
|
[AYUDA]Actualizar multiples registros en MySQL
PHP
|
Feedeex
|
1
|
4,436
|
25 Abril 2011, 23:57 pm
por merolhack
|
|