Cita:
Iniciado por GatorV Mmmm estas seguro de eso JPinedo? Cuando buscas esperas obtener registros que cumplan las dos condiciones no?
Cita:
Iniciado por chacamariano Con and no me tirá nada y con or me muestra todo lo que contiene futbol si pongo futbol + argentina, no busca futbol y argentina.
eso depende... peeero... ya respondió. Déjalo con AND entonces
Ahora:
1.-) Estás cambiando "+" por "and", lo cual genera una palabra adicional en el split (usa mejor explode()).
2.- El bucle "for" está totalmente de más.
3.-) Trata de utilizar nombres de variables más descriptivos, que me pierdo entre var1, var2, var3, etc ;)
4.-) Te dejo el código nuevamente:
Código PHP:
$cadena_buscada = trim($_GET['name']);
$cadena_buscada = str_replace('*', '%', $cadena_buscada);
$cadena_buscada = str_replace("?", "_", $cadena_buscada);
// Lo primero que haces es crear un array con esas cadenas separadas por +
$palabras = explode('+', $cadena_buscada);
// Tenemos este sql base:
$sql = "SELECT distinct pna_url
FROM pagina,pagina_keyword,keyword
WHERE pagina.pna_id = pagina_keyword.pna_id
AND pagina_keyword.krd_id = keyword.krd_id";
foreach( $palabras as $palabra ){
$palabra = trim($palabra);
$sql .= " AND krd_keyword LIKE '$palabra'";
}
$consulta = mysql_query($sql);