Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Organizacion de Datos

Estas en el tema de Organizacion de Datos en el foro de Mysql en Foros del Web. hola a todos quiero organizar valores de la base de datos en la cual tengo una tabla que se llama wp_postmeta, una columna la cual ...
  #1 (permalink)  
Antiguo 20/08/2009, 20:15
Avatar de konoyek  
Fecha de Ingreso: julio-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 0
De acuerdo Organizacion de Datos

hola a todos quiero organizar valores de la base de datos en la cual tengo una tabla que se llama wp_postmeta, una columna la cual se llama meta_key y otra la columna la cual se llama post_id, en cada post_id va relacionado los nombres de los meta_key que maneja en este caso lo que quiero saber es eso identificar cuantos meta_key maneja cada post.

ejemplo:

En mi base de datos le doy buscar imagen nombre determinado de un meta

y el resultado es el siguiente:

Código:
post_id 	meta_key 
3	Imagen 
3	1
3	2
3	3
23	Imagen 
20	Imagen 
23	1
36	Imagen 
36	2
36	1
36	3
36	4
36	5
36	6
36	7
esto quiere decir que en el post id 3 tengo incluido Imagen, 1, 2, 3

como puedo saber esta informacion conectandome a la base de datos
  #2 (permalink)  
Antiguo 21/08/2009, 08:00
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Organizacion de Datos

No se entiende konoyek.

select *from tabla where post_id=3?

saludos.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 22/08/2009, 08:59
Avatar de konoyek  
Fecha de Ingreso: julio-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Organizacion de Datos

en este caso seria asi para el post 3 pero lo que necesito es saber cuantos meta_key hay en cada post o articulosin necesidad de identificarlos yo mismo como por ejemplo post_id=3?
  #4 (permalink)  
Antiguo 22/08/2009, 10:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Organizacion de Datos

Eso sería hacer un:
Código sql:
Ver original
  1. SELECT post_id, COUNT(meta_key) TotalMetaKey
  2. FROM  wp_postmeta
  3. GROUP BY post_id;
Eso te devolverá el post_id y la cantidad de valores no NULL que haya en meta_key, por cada valor de post_id.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/08/2009, 11:51
Avatar de konoyek  
Fecha de Ingreso: julio-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Organizacion de Datos

Muchas gracias por tu respuesta en este caso seria asi :


Código PHP:
$sql "SELECT post_id, COUNT(meta_key) TotalMetaKey FROM `wp_postmeta` GROUP BY post_id";
echo 
$sql
me podrias explicar un poco mas gracias
  #6 (permalink)  
Antiguo 23/08/2009, 16:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Organizacion de Datos

No hay mucho por explicar: COUNT en este caso cuenta los registros donde haya un valor diferente de NULL en meta_key, separando los subtotales por cada valor de post_id distinto.
Si eliminases post_id y su agrupamiento, te devolvería el total de valores no NULL en la tabla, a diferencia de COUNT(*) que contaría los registros totales, incluyendo aquellos donde meta_key fuese NULL.
¿Qué duda te produce?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 23/08/2009, 21:24
Avatar de konoyek  
Fecha de Ingreso: julio-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Organizacion de Datos

gracias pero en este caso la duda que tengo es saber como mostrar el numero si por medio de un echo o que ya por el momento en donde estoy manejando lo que quiero se encuentra en el siguiente link http://revistaboulevard.com/boulevard/?p=3 y me aparece esto
Código HTML:
SELECT post_id, COUNT(meta_key) TotalMetaKey FROM `wp_postmeta` GROUP BY
  #8 (permalink)  
Antiguo 23/08/2009, 21:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Organizacion de Datos

Entendamos que una base de datos devuelve tablas. Para una base de datos, todo son siempre tablas (única excepción: Parámetros OUT o INOUT de un stored procedure o bien la respuesta de una stored function).
Siempre son tablas, aunque lo que devuelva sea un sólo valor de un campo, en ese caso sería una tabla de una sola columna y una sola línea... pero seguiría siendo una tabla.
El cómo manejas en PHP la tabla que la base devuelve, excede los límites de este foro y pasaría ser tema del Foro de PHP... donde están los expertos en ese tema.
En lo que esta consulta respecta, te devolverá una tabla de dos columnas, la primera con el nombre de post_id, y la segunda con el nombre de TotalMetaKey. La tabla tendrá tantas líneas como diferentes post_id haya.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 24/08/2009, 13:29
Avatar de konoyek  
Fecha de Ingreso: julio-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Organizacion de Datos

Gracias por tu respuesta ya estoy entendiendo un poco mas pero en si lo que necesito es que no me aparezca todos si unicamente los que estan dentro del post que este mirando ejemplo

post 3 = 4 meta


luego veo post 20 = 8 meta algo asi
  #10 (permalink)  
Antiguo 24/08/2009, 18:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Organizacion de Datos

En ese caso tienes que parametrizar el WHERE desde el mismo momento en que seleccionas ese post.
Digamos que la secuencia sea:
  1. El usuario selecciona "ver posts"
  2. El sistema consulta la base la lista de posts agrupados por ID, donde el listado sea el post inicial. El sistema muestra los posts en el listado por pantalla.
  3. El usuario selecciona un post.
  4. El sistema recupera el ID de ese post y envia una petición a la base para listar todos los posts relacionados con ese, mostrando la tabla devuelta por la base en pantalla.
  5. Al terminar, el usuario regresa a la pantalla anterior, donde el sistema vuelve a consultar a la base por la lista actualizada de posts.

No está muy en UML, pero la idea sería esa.
En este contexto tienes dos consultas:
  1. La primera se realiza al entrar a ese formulario y antes de cargarlo, donde consultas la tabla de síntesis actualizada de posts.
  2. La segunda requiere seleccionar un post y recuperar su ID; con ese ID se envía una nueva consulta, esta ver usando un WHERE parametrizado donde usas el valor obtenido para listar todos los relacionados y mostrarlos en pantalla.
Es importante destacar que cuando sales de esa visualización, si o sí tienes que volver a consultar el listado actualizado y volver a cargar la tabla inicial.

No te puedo poner el ejemplo de la consulta a menos que postees la estructura de la tabla, ya que no sé qmué campos hay que mostrar y cuales no.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 25/08/2009, 05:01
Avatar de konoyek  
Fecha de Ingreso: julio-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Organizacion de Datos

Mira como tal el ejemplo de la tabla seguiria siendo el mismo, si tu me dices que tendria que colocar una sentencia WHERE en este caso no sabria como validar con el numero del post

Código HTML:
post_id 	meta_key 
3	Imagen 
3	1
3	2
3	3
23	Imagen 
20	Imagen 
23	1
36	Imagen 
36	2
36	1
36	3
36	4
36	5
36	6
36	7
por el momento encontre una solucion basica pero quiero manejar este problema con php ya que quedaria predeterminado al momento de crear un post y no validarlo como lo estoy haciendo por medio de condicionales en php if post_id = 3 ........... los las 4 imagenes ques este obtiene


Código:
post_id 	meta_key 
3	Imagen 
3	1
3	2
3	3
  #12 (permalink)  
Antiguo 25/08/2009, 07:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Organizacion de Datos

Si no sabes usar el WHERE, como pareces estar diciendo, sería mejor que leyeras un poco de SQL y otro poco del manual de MySQL...
Código sql:
Ver original
  1. SELECT post_id, COUNT(meta_key) TotalMetaKey
  2. FROM  wp_postmeta
  3. WHERE post_id = 3
  4. GROUP BY post_id;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 25/08/2009, 22:09
Avatar de konoyek  
Fecha de Ingreso: julio-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Organizacion de Datos

El WHERE me determinaria solo los datos que necesito utilizarlo pero manualmente no??? en este caso 3 pero si necesito el posti id 20 lo determinaria un con una varible:


Discualpeme un poco pero entre php y MySQL No se muy bien Gracias....
  #14 (permalink)  
Antiguo 26/08/2009, 05:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Organizacion de Datos

Exactamente.
En esos casos lo que te conviene es tener en tu aplicación un método que genere el string de la consulta dinámicamente, de modo de cambiar el valor buscado a través de variables del script de PHP.
Pero esos detalles se escapan del alcance de este foro. Para esas cosas te recomiendo consultar en el Foro de PHP, que es donde las manejan bien.
En mi caso, como programo mayormente en .Net, aprovecho las capacidades del conector de MySQL para crear sentencias parametrizadas, con lo que los métodos reciben ciertos valores y me devuelven directamente las tablas buscadas.
Si aprovechas la capacidad de POO de PHP, puedes obtener cosas muy buenas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:07.