funciones.php
Código PHP:
<? function search_query ($buscar,$tablas,$campos) {
// Divido los campos, las tablas y el texto en un array
$campos = explode('|',$campos);
$tablas = explode('|',$tablas);
$buscar = explode(' ',$buscar);
// Hago un query por cada tabla
foreach($tablas as $tabla) {
$condiciones = array();
// Comienzo a definir la sintaxis
$sintax = 'SELECT * FROM ' . addslashes($tabla) . ' WHERE ';
foreach($campos as $campo) {
// Busco en cada campo cada palabra del texto que as puesto en buscar.
foreach($buscar as $buscarr) {
$campoo = explode('.',$campo);
// Si el campo es perteneciente a la tabla que estoy haciendo el query ejecuto:
if($tabla == $campoo[0]) {
// Añado el like
$condiciones[] = addslashes($campoo[1]) . ' LIKE \'%' . addslashes($buscarr) . '%\'';
}
}
}
// Con este implode pongo todos los OR
$sintax .= implode(" OR ",$condiciones);
$resp = mysql_query($sintax) or die(mysql_error());
// Meto en el array los resultados de esta busqueda
while($encontrado = mysql_fetch_assoc($resp)) $retorno[] = $encontrado;
}
return $retorno;
}
?>
Código PHP:
<?
<?php
include("config.php");
include("funciones.php");
// Ejemplo de uso:
// $resp = search_query("<palabras a buscar separado por espacios>","<tablas sql en donde buscar separadas por |>","<campos a buscar separados por | (los campos deben ser escribidos asi tabla.campo1,tabla.campo2 (en donde dice tabla pondra la tabla que usara de las tablas que hayas seleccionado)>");
// Un Ejemplo de la funcion search_query seria:
if (isset($_POST['busqueda'])) {
$consulta = trim($_POST['busqueda']);
if($consulta == "") {
echo "No hubo Resultados";
} else {
$resp = search_query("$consulta","entradas","entradas.titulo|entradas.intro|entradas.texto");
while($sql = search_fetch_array($resp)) {
// Aqui lo que quieras :)
$query2 = "SELECT nombre FROM categorias WHERE id = " . $sql['categoria'] . "";
$resp2 = mysql_query($query2);
$sql2 = mysql_fetch_array($resp2);
echo "- <a href=\"index.php?op=leer&entrada=" . $sql['id'] . "\">" . $sql['titulo'] . "</a> - ".$sql2['nombre'].", (" . $sql['fecha'] . ")<br/>";
}
}
}
?>
?>