![]() |
Como concateno los nombres de los campos de una tabla en mysql
Saludos a todos.
Esta es mi pregunta como hago para concatenar los nombres de los campos de una tabla en una variable. Tengo entendido que en ASP se usa la siguiente propiedad para tomar los nombre de los campos: Código:
rst.Fields(i).Name |
Hola,
No me queda muy clara tu pregunta Shidalis. ¿Estas trayendo registros de la base de datos y quieres acceder a estos por los nombres de sus campos? ¿Se trata de concatenar los nombres de los campos a las correspondientes tablas al realizar una consulta SQL? O a lo mejor es otra cosa y... bueno, por eso digo que no me queda muy clara la cuestión. ;) |
Código PHP:
|
Hola,
Disculpa Román, con "mysql_fetch_field", ¿qué trae uno exactamente? ¿Los nombres de los campos? ¿Alguna otra información además? ¿Qué consulta SQL produce los resultados que necesita esa función? ¿Es algo así como una especie de "wrapper" para las consultas DESCRIBE de MySQL? Muchas preguntas... :D :eek: |
Cita:
Qué consulta usar, podría ser:
// Saludos |
Hola,
Ejem... sí, bueno, el manual de PHP... no sé porqué había pensado que podrías responderme tú mismo. ;) Ya estoy echando un vistazo a ver qué sacamos en claro. :D |
Cita:
Además, hasta cierto punto, sí lo digo yo mismo aquí // Saludos |
disculpa roman hice lo siguiente
Código PHP:
Código PHP:
|
Código PHP:
Saludos. |
Hola,
Si lo que nos interesa es traer la información de los campos, parece que funciona igual si se realiza una consulta limitada:
También funciona solicitando un solo campo, o discriminando con la ayuda de "WHERE", pero, no sé yo si no queda más curioso y además es más escalable (no haría falta conocer el nombre del campo, no hace falta el "WHERE" tampoco, únicamente el nombre de la tabla) haciéndolo como digo arriba. |
Sip, me faltó un paréntesis:
while ($field=mysql_fetch_field($resultados) Al margen de esta errata, si lo único que necesitas es la información de los campos de la tabla, sería mejor que le pusieras una condición imposible a la consulta:
pues así evitas traerte innecesariamente todos los registros. También puede interesarte la consulta
que te devolverá información específica de la tabla. // Saludos |
Cita:
// Saludos |
Hola,
Ahora lo he cogido... o sea, que ni "WHERE", ni "LIMIT", ni nada. Basta con realizar una consulta "DESCRIBE" y obtenemos los mismos resultados sin necesidad de traernos registro alguno. :eek: :D Edito: Si utilizamos la función "mysql_fetch_results" luego de realizar una consulta "DESRIBE" obtenemos también información: Código:
stdClass ObjectCódigo:
stdClass Object |
Cita:
// Saludos |
Cita:
// Saludos |
David, examina con detalle la información que te da una y otra forma. Realmente es prácticamente los mismo. La única parte de más es la de max_length, pero no podía ser de otra forma, ya que max_length se refiere a la máxima longitud de entre los registros devueltos, es decir, no forma parte de la estructura de la tabla.
// Saludos |
Hola,
Cita:
Cita:
|
Hola,
Cita:
Cita:
|
Cita:
Fíjate en el tercer comentario del manual. Claro que es el comentario de un usuario pero bastaría hacer unas cuantas pruebas. Por otra parte, la API de PHP para MySql está basada casi totalmente en la API de C, en donde sí especifica lo que te comento. Cita:
int(11) unsigned zerofill es decir, abarca [unsigned], [zero fill] y [type] y posiblemente también [blob]. Otra que no viene en DESCRIBE es [table] pero esa no la necesitas ¿verdad? ;) // Saludos |
Hola,
Ya comprendo. O sea, se devuelven los mismo datos, solo que digamos que PHP los organiza en las propiedades de un objeto al utilizar "mysql_fetch_field". Yo estoy haciendo unas pruebas y mira cómo me va quedando un posible método para la clase "bdatos.class" que me traigo entre manos: Código PHP:
|
¿Para qué quieres $i?
EDITO: Código PHP:
|
Hola,
Este Román... que para qué quiero "$i" dice... anda que... De momento el método va quedando así: Código PHP:
De todos modos hay que darle alguna que otra vuelta más a esto. No sé si con el método "Campos" es bastante (la verdad es que no suelo necesitar saber de qué tipo es un campo, pero también es que no he hecho muchas cosas que digamos) o merecerá la pena entretenerse un poco más a ver de qué forma puede presentarse esa información que sea mejor para quien la requiera. ;) PD. Gracias por lo de la $i Román. :D |
Hola,
Mira cómo va quedando la cosa Román. He preparado una clase auxiliar para la clase "bdatos.class" que ya casi puedo decir que estamos haciendo... :D Código PHP:
Código PHP:
|
Hola
¿Y por que no utilizar simplemente "mysql_fetch_array()" en vez de "mysql_fetch_filed()"? |
Hola,
Cita:
Cita:
|
Hola
Yo lo digo por el proceso que está haciendo: Código PHP:
Código PHP:
|
Hola,
Ya comprendo por dónde querías ir Kayetano. En realidad podría utilizarse la función "mysql_fetch_assoc", con lo que ya nos quedaría un Array asociativo, mucho más "parecido" a lo que tenemos que el Array numérico que obtendríamos con "mysql_fetch_array". En todo caso el tema estaba en "traducir" el objeto resultado de la función "mysql_fetch_field". De hecho ahora mismo en la clase BDatos de que venimos hablando no se utilizan Arrays, sino que se traduce el objeto, mejor dicho, las propiedades del objeto devuelto por la función "mysql_fetch_field" al español. Para ello utilizo una clase auxiliar... pero no sé si fruto de mi ignorancia, de no ver otra forma de hacerlo, al menos de momento. El caso es que lo se pretendía conseguir era traducir los nombres de las propiedades del objeto mencionado. Ahora mismo viene quedando el código fuente como se verá. Lo siguiente es el método que puede utilizarse para obtener información sobre las columnas (campos) de una determinada tabla de una base de datos: Código PHP:
Código PHP:
|
Hola
Cita:
|
Hola,
Bueno, tienes razón. De la ayuda para la función mysql_fetch_array: Cita:
|
¿Me puede alguien explicar que tienen que ver las peras con las manzanas?
// Saludos |
¿que son las peras y que son las manzanas?
|
Hola,
¿Alguien sabe por qué las peras y las manzanas cruzaron la carretera? Es que a lo visto hay un pollo que las está buscando. :D |
Cita:
Que se pretende con esa clase que se está haciendo ahí, no le veo gran utilidad. Yo tambien suelo usar mysql_fetch_array me parece mucho más cómodo. |
Hola,
Cita:
|
Cita:
Cita:
Insisto, ¿qué tiene que ver columnas con filas? // Saludos |
Cita:
Cita:
Saludos. |
| La franja horaria es GMT +2. Ahora son las 22:07:12. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi