Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/06/2004, 17:10
Bermudez
 
Fecha de Ingreso: agosto-2003
Mensajes: 33
Antigüedad: 20 años, 7 meses
Puntos: 0
Pregunta problemas al buscar datos en bd

Hola:

Tengo un select con 4 campos: autor, titulo, materia y descriptores.

Cuando los tenia con if funcionaba, pero no buscaba con los operadores
lógicos AND Y OR y agregue los pasos como se dice en varios link
donde han hecho las mismas preguntas pero solo lo quiero que busque
así por el campo titulo, pero resulta que cuando
busco empresa AND educación no me encuentra ningún registro
pero cuando busco por una sola palabra si me lo despliega

Ya revise varios link que hablan del mismo tema , pero no logre resolver
el problema, a lo mejor creo que no he entendido bien,
deseo que me expliquen. Ayuda por favor

Que estoy haciendo mal, cual es el error o me falta algo que no he
agregado alguien que me ayude y que resolvió este problema y como lo hizo

Gracias desde ya por la ayuda

Código PHP:
$buscador=$_GET['buscar'];
$seccion=$_GET['sec'];

//separacion de palabras con espacio
$separar_palabras=explode(" ",$buscador);
//contar el total de palabras de la cadena
$total_palabras=count($separar_palabras)-1;
//recorrer el array generado por el explode
for ($indice=0;$indice<=$total_palabras;$indice++){
$secuencia_buscar="titulo like '%".$separar_palabras[$indice]."%'";
//se mira si es la ultima palabra a poner, en tal caso no se pone el AND
if ($indice<$total_palabras){
$operador=" AND ";
}else{
$operador="";
}
//se concetena la sentencia anterior con el comando del operador
$condicion.=$secuencia_buscar.$operador;
}

if (
$buscador){
if (
$seccion=="autor"){
$condicion.="autor like '%".$buscador."%' order by titulo";
}
else if (
$seccion=="materia"){
$condicion.="materia like '%".$buscador."%' order by titulo";
}
else if (
$seccion=="descriptores"){
$condicion.="descriptores like '%".$buscador."%' order by titulo";
}
}
$sql="select * from resum where ".$condicion." limit $inicial,$cantidad";
$cad=mysql_db_query($base,$sql) or die (mysql_error()); 
Gracias nuevamente
__________________
Patricia