| |||
Respuesta: Select para 3 tablas. Sí, pero esto es solo el comienzo y ya verás los problemas. La velocidad ha mejorado, creo, por los índices, que eran necesarios. Probaremos una cosa tras otra, según nos digas qué quieres hacer luego, hasta que choquemos de frente con los problemas que ya te anticipó gnzsoloyo. Entonces entenderás todo lo que te quería decir nuestro moderador en su permalink #7 de este post. |
| |||
Respuesta: Select para 3 tablas. pueden ser muchas cosas que tendrás que probar y controlar. Para empezar imagino que la conexión con la base funciona. Creo que convendría debuguear cada paso, es decir, mostrar errores, hacer echo en PHP de la consulta, comprobar las variables pasadas, pero para eso debes pedir ayuda en el foro PHP. |
| |||
Respuesta: Select para 3 tablas.
Código MySQL:
Ver original Esto si buscas coincidencia de nombre y teléfono, pero ojo, en el foro PHP te enseñarán a controlar que si no se pasa la variable de nombre $vnombre, no se incluya esa parte de la consulta. Me refiero a esto: CONCAT( nombre, ' ', apellidos ) LIKE '%{$vnombre}%' AND La siguiente consulta es si se incluye población. Eso obliga a hacer un INNER JOIN con la tabla de poblacion, pero ojo, seguimos exigiendo que se cumplan todos los valores de todos los parámetros pasados, y si buscas la poblacion de una persona que tenga dos direcciones en esa localidad, aparecerá dos veces esa persona, por lo que deberás decirnos qué querrías hacer con esos datos en ese momento.
Código MySQL:
Ver original Aquí es donde ya empezaría yo a preguntarme si debo usar índices fulltext sobre esos campos y que busquen sobre todos ellos. Pero por ahora dejaremos eso. Última edición por jurena; 21/09/2012 a las 08:57 |
| ||||
Respuesta: Select para 3 tablas. Ok, vamos por el buen camino.Ahora como podemos hacer recoger en la siguiente pestaña los datos del aparato, con otro select?. tabla ------> AP_USUARIOS NUM_APARATO-----> FK NUM_USUARIO MODELO MARCA APARATO COD_APARATO NUM_SERIE FECHA_COMPRA |
| |||
Respuesta: Select para 3 tablas.
Código MySQL:
Ver original Solo he añadido el filtro por la variable modelo, y los campos que querría mostrar. Revisa los duplicados de usuario. Haz pruebas y verás que al buscar a veces te saca el mismo usuario varias veces... Ya empieza a devolver pocos resultados y no sé si es lo que buscas. Con programación controlas lo que envías para que la consulta se acomode a ello. |
| ||||
Respuesta: Select para 3 tablas. A ver, se a quedado de esta forma porque habia algún error:
Código PHP:
Ver original En myadmin he metido un nº de telefono para buscar y me ha tardado unos 38 segundos en encontrarmelo y en la web directamente en el formulario no encuentra nada. |
| ||||
Respuesta: Select para 3 tablas. Jurena, me funciona bien pero me duplica por 8 o 10 veces cada registro de usuarios y aparatos, pero no es en todos. Creo que los que se duplican son los usuarios que tienen mas de un aparato en su domicilio porque los que tienen solo uno no se duplican. Última edición por satjaen; 21/09/2012 a las 16:32 |
| |||
Respuesta: Select para 3 tablas. ¿Entiendes ahora lo que decía @gnzsoloyo en el permalink #7? A eso se refería. Si añades un GROUP BY U.num_usuario verás lo que ocurre. Pruébalo. Te trae sólo un dato, pero pierdes otros, por ej., si buscas por el nombre sólo te mostrará una dirección, y un aparato de ese cliente, el primero. Lo mejor sería traerse sólo el identificador SELECT U.num_usuario y U.nombre, U.apellidos FROM... GROUP BY U.num_usuario Luego montas el resultado con enlaces que permitirán pasar el num_usuario, pero también los otros criterios de búsqueda que pasas por GET. Eso permitiría lanzar búsquedas específicas sobre cada cliente y detalle del mismo. Luego haría consulta dependiendo del número de parámetros. Piensa que una búsqueda puede ofrecerte muchos resultados y otra uno o ninguno. |
| |||
Respuesta: Select para 3 tablas. Es mejor que se dupliquen los usuarios (eso no tiene por qué ser un problema), pues así conservarás los otros datos que sí son importantes. Dicho esto, creo que no es este el mejor lugar para responder a tu pregunta sobre qué hacer con esos datos. Hazla en el foro de programación. Hay varias formas de hacerlo. Allí te ayudarán. Aquí ya tienes las líneas de datos sacadas... |
Etiquetas: |