No me queda clara la pregunta, ¿cuáles "campos" vienen vacíos?;
¿podrías poner un ejemplo de cómo se ven los datos actualmente y
cómo quieres que se vean?.
La respuesta posiblemente sea usar en el WHERE `AND xyz IS NOT NULL' o
algo similar. Y por cierto ... esa función muestra_select() podría
mejorarse. Estás mezclando la lógica de recorrer un result set con la
lógica de mostrarlo como HTML.
-Óscar.
Hola,
No me queda clara la pregunta, ¿cuáles "campos" vienen vacíos?;
¿podrías poner un ejemplo de cómo se ven los datos actualmente y
cómo quieres que se vean?.
La respuesta posiblemente sea usar en el WHERE `AND xyz IS NOT NULL' o
algo similar. Y por cierto ... esa función muestra_select() podría
mejorarse. Estás mezclando la lógica de recorrer un result set con la
lógica de mostrarlo como HTML.
Dudo que sea posible hacer lo que quieres directamente en una sola
consulta de SQL, porque tendríamos un Result Set donde cada fila tiene
un número variable de columnas, dependiendo de cuáles campos estén
vacíos. Además, las columnas que se retornan deben especificarse de
manera estática en el SELECT de la consulta, algo que no podríamos
hacer de antemano si quisiéramos retornar algunas columnas pero no
siempre todas.
Se podría hacer un procedimiento almacenado que lanze la consulta,
mire en el resultado qué columnas están vacías y después construya
dinámicamente la misma consulta, esta vez especificando las columnas
que nos interesan en el SELECT ... una solución bastante rebuscada, no
la recomendaría.
Definitivamente, lo que quieres hacer es más sencillo con PHP. Una
sugerencia más razonable va atada a mi comentario sobre el código que
enviaste. Yo dividiría la funcionalidad de `muestra_select()' en dos
funciones, una (en la capa de acceso a datos) que recorra el Result Set
y lo retorne en una estructura de datos (ej, una lista de filas donde
cada elemento es una lista de columnas) . Esto, sí y sólo si el
número de filas del Result Set es relativamente pequeño. La segunda
función (en la capa de presentación) recibiría dicha estructura de
datos y generaría dinámicamente el HTML, pintando sólo los campos
distintos de vacío, como los necesitas.
Si encuentras una mejor solución, ponla en este foro.
-Óscar.