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

como usar like para dos tablas???

Estas en el tema de como usar like para dos tablas??? en el foro de Mysql en Foros del Web. buscar ="SELECT * FROM noticias WHERE titulo LIKE '%$busqueda%' OR titulo like '%$busqueda%' BY id desc"; como deberia poner para que busque en dos tablas ...
  #1 (permalink)  
Antiguo 13/09/2006, 13:34
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
como usar like para dos tablas???

buscar ="SELECT * FROM noticias WHERE titulo LIKE '%$busqueda%' OR titulo like '%$busqueda%' BY id desc";

como deberia poner para que busque en dos tablas o sea (noticias, y novedades)

gracias
__________________
DJJJ
  #2 (permalink)  
Antiguo 13/09/2006, 13:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si no guardan ninguna relación ambas tablas .. simplemente:

SELECT * FROM noticias,novedades WHERE noticias.titulo LIKE '%$busqueda%' OR noticias.titulo like '%$busqueda%' OR novedades.titulo like '%$busqueda%' BY noticias.id desc";

El caso es meter en el "from" las tablas implicadas y hacer referencia a estas por nombre_tabla.campo

Te recomiendo ver algún tutorial sobre SQL como los que puedes ver en:
www.mysql-hispano.com

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 13/09/2006, 13:58
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
me da error

Error en la consulta de conteo de registros: SELECT COUNT(*) FROM noticiassin,noticiasmusicales WHERE noticiassin.titulo LIKE '%arjona%' OR noticiasmusicales.titulo like '%arjona%' noticiassin.id desc. Mysql dijo: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'noticiassin.id desc' at line 1

no se si tiene que ver que uso el paginator
__________________
DJJJ
  #4 (permalink)  
Antiguo 13/09/2006, 14:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por DJJJ Ver Mensaje
Error en la consulta de conteo de registros: SELECT COUNT(*) FROM noticiassin,noticiasmusicales WHERE noticiassin.titulo LIKE '%arjona%' OR noticiasmusicales.titulo like '%arjona%' noticiassin.id desc. Mysql dijo: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'noticiassin.id desc' at line 1

no se si tiene que ver que uso el paginator
DJJJ ..

Pese que el script "Paginator" (de Jpinedo, usuario de estos foros) sea muy conocido .. sobre todo en el foro de PHP. En un foro como este de "SQL" y "Base de datos" .. si hablas de "paginator" .. debes dejar referencias a el .. Ya te comenté alguna vez lo que hace "Paginator" (en cuanto a expresiones regulares que aplica).

Para salir de dudas de cualquier "interferencia" de algún script o código que uses, lo "normal" es ejecutar tus consultas SQL con datos de pruebas en algún GUI para Msyql (phpMyadmin o lo que uses). Ahí verifica si te devuelve la consulta SQL los datos esperados y si es así .. aplicalo en tu código "PHP" o lo que uses. Así descartas problemas de tu sentencia SQL (que recine acabas de conocer una alternativa y yo me puedo haber equivocado tal vez) con otros problemas por qué otro código "altere" tu consulta SQL a ejecutar (como es el caso de "Paginator" en cierta parte).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 13/09/2006, 14:53
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
mmm perdon cluster, pondre mas referencias como tu dices

igual ahora probe el codigo en phpmyadmin directamente

y el error es

Error
SQL-query : [Editar]

SELECT * FROM noticiassin,noticiasmusicales WHERE noticiassin.titulo LIKE '%$busqueda%' OR noticiasmusicales.titulo like '%$busqueda%' BY noticiassin.id DESC LIMIT 0, 30


MySQL ha dicho:


You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'BY noticiassin.id DESC LIMIT 0, 30' at line 1


Volver
__________________
DJJJ
  #6 (permalink)  
Antiguo 13/09/2006, 15:14
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Código:
SELECT * FROM noticiassin,noticiasmusicales WHERE noticiassin.titulo LIKE '%$busqueda%' OR noticiasmusicales.titulo like '%$busqueda%' 
ORDER BY noticiassin.id DESC LIMIT 0, 30
No se si la parte final quieras hacer ORDER BY...
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #7 (permalink)  
Antiguo 13/09/2006, 15:20
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
mira lo ejecute en phpmyadmin

y me salio su consulta fue ejecutada con exito, pero no me mostro los resultados
__________________
DJJJ
  #8 (permalink)  
Antiguo 14/09/2006, 08:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para tus pruebas en phpMyadmin o cualquier otro GUI debes dar algún valor a tus $busqueda .. No puedes ejecutar directamente:

SELECT * FROM noticiassin,noticiasmusicales WHERE noticiassin.titulo LIKE '%$busqueda%' OR noticiasmusicales.titulo like '%$busqueda%' BY noticiassin.id DESC LIMIT 0, 30

phpMyadmin o tu GUI usado no va a saber nada de que valor tendrá que tener $busqueda y en consecuencia no arrojará resultados. Usa algún valor que sepas que existe:

SELECT * FROM noticiassin,noticiasmusicales WHERE noticiassin.titulo LIKE '%algo%' OR noticiasmusicales.titulo like '%algo%' BY noticiassin.id DESC LIMIT 0, 30

(por cierto .. no sé para que limitas los resultados a 30? .. bueno .. eso es lo de menos en este caso.)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 14/09/2006, 11:45
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
voy a empezar de nuevo

tengo una tabla llamada noticiassin

y los siguientes campos

Código:
id  int(5) auto_increment 
titulo  varchar(255) 
noticia  text 
foto  varchar(255)
audio  varchar(255) 
tema  varchar(255)
y utilizo

Código PHP:
SELECT FROM noticiassin WHERE titulo LIKE '%$busqueda%' OR noticia like '%$busqueda%' OR tema like '%$busqueda%' ORDER BY id desc 
remplazando simpre $busqueda por ejemplo "arjona"

bien ahora tengo un problema

es que yo quiero buscar en dos tablas:

tabla noticiasin

Código:
id  int(5) auto_increment 
titulo  varchar(255) 
noticia  text 
foto  varchar(255)
audio  varchar(255) 
tema  varchar(255)
y la tabla noticiasmusicales

Código:
id  int(5) auto_increment 
titulo  varchar(255) 
noticia  text 
foto  varchar(255) 
audio  varchar(255) 
tema  varchar(255)
probe haciendo

Código PHP:
SELECT FROM noticiassinnoticiasmusicales WHERE noticiassin.titulo LIKE '%$busqueda%' OR noticiassin.noticia like '%$busqueda%' OR noticiassin.tema like '%$busqueda%' or noticiasmusicales.titulo LIKE '%$busqueda%' or noticiasmusicales.noticia LIKE '%$busqueda%' or noticiasmusicales.tema LIKE '%$busqueda%' ORDER BY noticiassin.id desc 
me devuelve resultado rarisimo directamente desde php

me devuelve id repetidos pero nada que ver con la busqueda

y por medio de phpmyadmin me repite arjona con 20 veces pero de una sola tabla no de las dos que figura arjona

a parte tengo una duda si al final

Cita:
ORDER BY noticiassin.id desc
me va a ordenar por una sola tabla no por las dos y la otra como se ordena?

como seria???
__________________
DJJJ
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 01:25.