Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

[SOLUCIONADO] Problema mysql Query

Estas en el tema de Problema mysql Query en el foro de WordPress en Foros del Web. Hola a todos. Tengo esta query que estoy implementando en Wordpress @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $querystr = "    SELECT $wpdb->posts .*   ...
  #1 (permalink)  
Antiguo 23/11/2013, 00:22
(Desactivado)
 
Fecha de Ingreso: enero-2004
Mensajes: 136
Antigüedad: 20 años, 10 meses
Puntos: 0
Problema mysql Query

Hola a todos.

Tengo esta query que estoy implementando en Wordpress

Código PHP:
Ver original
  1. $querystr = "
  2.    SELECT $wpdb->posts.*
  3.    FROM $wpdb->posts, $wpdb->top, $wpdb->term_relationships
  4.    WHERE $wpdb->posts.ID = $wpdb->top.post_id
  5.    AND $wpdb->top.DIA_FINAL >= NOW()
  6.    AND $wpdb->top.ESTADO = 'OK'
  7.    AND $wpdb->posts.ID = $wpdb->term_relationships.object_id
  8.    AND $wpdb->term_relationships.term_taxonomy_id = '8'
  9.    AND $wpdb->term_relationships.term_taxonomy_id = '33'
  10.    ORDER BY RAND()
  11.    LIMIT 50
  12.     ";

El problema que tengo radica en estas dos lineas:
Código MySQL:
Ver original
  1. AND $wpdb->term_relationships.term_taxonomy_id = '8'
  2.     AND $wpdb->term_relationships.term_taxonomy_id = '33'

Lo que necesito es que seleccione los registros con las condiciones anteriores (funciona correcto), pero también que seleccione aquellos registros que su term_taxonomy_id = '8' y dentro de esos registros que seleccione los que term_taxonomy_id = '33'


Alguna idea de como hacerlo?

Un saludo.
  #2 (permalink)  
Antiguo 23/11/2013, 01:17
Avatar de alvidales  
Fecha de Ingreso: febrero-2012
Mensajes: 108
Antigüedad: 12 años, 9 meses
Puntos: 11
Respuesta: Problema mysql Query

No se por que te metes con las bases de datos de Wordpress, yo te recomendaria mejor hacer plugins, es mucho más sencillo y la plataforma de Wordpress te maneja las bases de datos sin necesidad de meterte a batallarle con ellas.
__________________
Hasta que el hombre no es nada, Dios no puede hacer nada con el.
  #3 (permalink)  
Antiguo 23/11/2013, 01:22
(Desactivado)
 
Fecha de Ingreso: enero-2004
Mensajes: 136
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Problema mysql Query

Alguna idea de como resolver este problemilla?
  #4 (permalink)  
Antiguo 23/11/2013, 02:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Problema mysql Query

aunque desconozco el interior de wordpress, la parte de la consulta debería ser parecida a una consulta sql y , por tanto, tal vez con paréntesis encontrarás lo que quieres, pero creo que esta expresión tuya no es del todo clara:
Cita:
Lo que necesito es que seleccione los registros con las condiciones anteriores (funciona correcto), pero también que seleccione aquellos registros que su term_taxonomy_id = '8' y dentro de esos registros que seleccione los que term_taxonomy_id = '33'
Seguramente tú lo ves claro, pero para mí no lo está. ¿Qué quieres decir exactamente? tienes esto, pero ¿qué condiciones quieres que cumpla con AND? si son todas ya lo tienes, pero tal vez no es eso lo que quieres
Código MySQL:
Ver original
  1. WHERE $wpdb->posts.ID = $wpdb->top.post_id
  2.    AND $wpdb->top.DIA_FINAL >= NOW()
  3.    AND $wpdb->top.ESTADO = 'OK'
  4.    AND $wpdb->posts.ID = $wpdb->term_relationships.object_id
  5.    AND $wpdb->term_relationships.term_taxonomy_id = '8'
  6.    AND $wpdb->term_relationships.term_taxonomy_id = '33'
Lo demás se entiende bien, pero veo que posts.id lo comparas con dos campos.
$wpdb->posts.ID = $wpdb->top.post_id
AND $wpdb->posts.ID = $wpdb->term_relationships.object_id
Luego dices
Cita:
Lo que necesito es que seleccione los registros con las condiciones anteriores (funciona correcto), pero también que seleccione aquellos registros que su term_taxonomy_id = '8' y dentro de esos registros que seleccione los que term_taxonomy_id = '33'
Pero cuando dices condiciones anteriores dinos cuáles, de manera concreta, pues no sabemos si te refieres a todas o a las anteriores a term_taxonomy_id = '8'
Y cuando dices dentro de estos registros, ¿a cuáles te refieres?
Lo mejor es que lo aclares de manera más precisa.
Quiero que cumpla estas condiciones

1º $wpdb->posts.ID = $wpdb->top.post_id
y $wpdb->top.DIA_FINAL >= NOW()
y $wpdb->top.ESTADO = 'OK'
y $wpdb->posts.ID = $wpdb->term_relationships.object_id
o bien esta
$wpdb->term_relationships.term_taxonomy_id = '8'

2º pero que sea una u otra también cumpla esta: $wpdb->term_relationships.term_taxonomy_id = '33'

Por ejemplo, eso se resuelve con paréntesis y usando AND y OR, pero debemos tener claro lo que buscas, incluso es mejor ofrecer datos, aunque sea inventados. Quiero encontrar esto los que tengan este campo con este valor, y este con este, etc., pero no esto...
Así sabremos lo que quieres exactamente.
  #5 (permalink)  
Antiguo 23/11/2013, 03:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema mysql Query

OFF TOPIC en MySQL

Movido a Wordpress
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 23/11/2013, 10:47
(Desactivado)
 
Fecha de Ingreso: enero-2004
Mensajes: 136
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Problema mysql Query

La tabla term_relationships es la que guarda las categorias de los diferentes post, y el campo term_taxonomy_id el que recoge los ID de las diferentes categorias del POST


Con la consulta :

Código MySQL:
Ver original
  1. AND $wpdb->term_relationships.term_taxonomy_id = '8'
, me busca aquellos registros que cumpliendo las codiciones anteriores pertenencen a la CATEGORIA 8. Yo quiero tambien que me muestre los registros que perteneciendo a la CATEGORIA 8, tambien pertenencen a la CATEGORIA 33

Si utilizo:

Código MySQL:
Ver original
  1. AND $wpdb->term_relationships.term_taxonomy_id = '8'
me muestra solo los de la categoria 8

Si utilizo:

Código MySQL:
Ver original
  1. AND $wpdb->term_relationships.term_taxonomy_id = 33'
Me muestra solo los de la categoria 33

Si utilizo:

Código MySQL:
Ver original
  1. AND $wpdb->term_relationships.term_taxonomy_id = (8, 33)
me da error : WordPress database error: [Operand should contain 1 column(s)]



Como podría arreglar este problema?

Un saludo.
  #7 (permalink)  
Antiguo 24/11/2013, 12:01
Avatar de AlejandroGalvez  
Fecha de Ingreso: noviembre-2013
Mensajes: 189
Antigüedad: 11 años
Puntos: 49
Respuesta: Problema mysql Query

La solución rápida:

Código MySQL:
Ver original
  1. AND ( $wpdb->term_relationships.term_taxonomy_id = '8'
  2.     OR $wpdb->term_relationships.term_taxonomy_id = '33' )

Etiquetas: mysql, query
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 07:20.