Foros del Web » Programando para Internet » PHP »

ayuda con like

Estas en el tema de ayuda con like en el foro de PHP en Foros del Web. hola pongo este post aqui ya que en esta seccion me sacaron bastantes dudas de base de datos, y lo tenia posteado en base de ...
  #1 (permalink)  
Antiguo 17/09/2006, 11:28
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
ayuda con like

hola pongo este post aqui ya que en esta seccion me sacaron bastantes dudas de base de datos, y lo tenia posteado en base de datos y mysql, hace un par de dias y no tengo respuesta

esta es mi inquietud

tengo una tabla llamada noticiassin

y los siguientes campos


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

Código PHP:
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:
Código PHP:
id  int(5auto_increment 
titulo  varchar
(255
noticia  text 
foto  varchar
(255)
audio  varchar(255
tema  varchar(255
y la tabla noticiasmusicales


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


Código PHP:
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:
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
  #2 (permalink)  
Antiguo 17/09/2006, 11:58
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
yo estructuraria diferente la base de datos,ya que las dos tablas tienen las mismas columnas,en vez de hacer dos tablas,yo lo que haria seria hacer una tabla con el tipo de noticia:
Código PHP:
id_tipo_noticia varchar()//numero id que asignas al tipo de noticia
tipo_noticia  int() //en tu caso seria noticiassin o noticias musicales
//por ejemplo id 1 para noticiassin y 2 para noticias musicales 
Luego en otra tabla haces esto:
Código PHP:
id_tipo_noticia        #FOREIGN KEY tabla_de_arriba.id_tipo_noticia
titulo  varchar(255
noticia  text 
foto  varchar
(255)
audio  varchar(255
tema  varchar(255
De esta manera tendras en una tabla todas las noticias,clasificadas por el numero id que le hayas dado tu al tipo de noticia.

Un Saludo
  #3 (permalink)  
Antiguo 17/09/2006, 12:13
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
la verdad muy bueno

muy pero muy bueno
en el momento de vizualizar uso un if para saber a que clasificacion va

pero en el momento de paginar con el script de jpinedo (Paginator) como hago ya que en la base de datos me va a leer todo o no?
__________________
DJJJ
  #4 (permalink)  
Antiguo 17/09/2006, 12:40
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
ahora con que hagas :
Código PHP:
SELECT *
FROM tabla
WHERE id_tipo_noticia
=1  //para busquedas en el tipo uno por ejemplo en noticiassin
AND noticia LIKE '%$busqueda%' 
Y esta para noticias de musica:
Código PHP:
SELECT *
FROM tabla
WHERE id_tipo_noticia
=//si as puesto 2 en id tipo de noticia..
AND noticia LIKE '%$busqueda%' 
Nose si es lo que quieres hacer exactamente,seperar la dos busquedas o en una busqueda que te encuentre en cualquier tipo de noticia,en ese caso haz:
Código PHP:
SELECT *
FROM tabla
WHERE noticia LIKE 
'%$busqueda%'  or titulo.... 
  #5 (permalink)  
Antiguo 17/09/2006, 12:42
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Si me equivoco que me rectifiquen,no soy un crack todavia jeje

Un Saludo..!
  #6 (permalink)  
Antiguo 18/09/2006, 07:45
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
no se sieres un crack pero vas por buen camino

no se sieres un crack pero vas por buen camino

graciasssss.
__________________
DJJJ
  #7 (permalink)  
Antiguo 18/09/2006, 09:07
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 4 meses
Puntos: 1
Hola,

si las quieres sacar todas de una sola vez utiliza la sentencia UNION o UNION ALL de mysql [1] (si la versión de tu servidor mysql es superior a la 4.0)

[1] http://dev.mysql.com/doc/refman/4.1/en/union.html
__________________
http://www.nosoynadie.net/
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:32.