Hola a todos bueno lamentablemente el buscador no quedo del todo como queria ya que cuando le doy buscar con numeros o palabras mayusculas no me sale ninguna consulta, por hay estube viendo un tutorial de un buscador con LIKE y MATCH combinados, pero el problema es que no trabaja no se si podria aplicar lo mismo para el mio atraves de un if y un elseif para que consulte lo de la casilla de texto con el like y lo del menu de selecion con MATCH, aki esta el ejemplo
Código PHP:
mysql_connect("host","usuario","password");
//DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe
if ($busqueda<>''){
//CUENTA EL NUMERO DE PALABRAS
$trozos=explode(" ",$busqueda);
$numero=count($trozos);
if ($numero==1) {
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
$cadbusca="SELECT REFERENCIA, TITULO FROM ARTICULOS WHERE VISIBLE =1 AND DESARROLLO LIKE '%$busqueda%' OR TITULO LIKE '%$busqueda%' LIMIT 50";
} elseif ($numero>1) {
//SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA AVANZADO DE MATCH AGAINST
//busqueda de frases con mas de una palabra y un algoritmo especializado
$cadbusca="SELECT REFERENCIA, TITULO , MATCH ( TITULO, DESARROLLO ) AGAINST ( '$busqueda' ) AS Score FROM ARTICULOS WHERE MATCH ( TITULO, DESARROLLO ) AGAINST ( '$busqueda' ) ORDER BY Score DESC LIMIT 50";
}
$result=mysql("teleformacion", $cadbusca);
While($row=mysql_fetch_object($result))
{
//Mostramos los titulos de los articulos o lo que deseemos...
$referencia=$row->REFERENCIA;
$titulo=$row->TITULO;
echo $referencia." - ".$titulo."<br>";;
}
PD: Ya probé con la opción de LIKE AND Y OR y solo me toma la opcion del campo de texto
Código PHP:
$bus .= "`$Field` like '%$buscar%' AND `$Field` like '%$buscarbd%'";
este seria mi código me esta mandando error en el leseif
Código PHP:
<?php
error_reporting(E_ALL ^ E_NOTICE);
require("config.php");
?>
<?php
require_once("database.php");
$TableID = $_POST['table_id'];
$Fields = explode("@", $Tables[$TableID]);
$numero=count($Fields);
// get the primary key and check that it is selected in the $fields
require_once("primary.php");
$PRS = get_primary($TableNames[$TableID]);
//if((!$buscarbd) || ($buscarbd == "")) { $buscarbd = ""; } else { $buscarbd = "+(".$buscarbd.")"; }
//if((!$code) || ($code == "")) { $code = ""; }
//if((!$buscar) || ($buscar == "")) { $buscar = ""; } else { $buscar = "-(".$buscar.")"; }
//$bus = "select * from `$TableNames[$TableID]` where ";
if ($numero==1) {
$bus = "SELECT * FROM `$TableNames[$TableID]` WHERE ";
$Counter = 0;
foreach($Fields as $Field)
{
$Counter++;
if($Counter > 1)
{
$bus .= " or ";
};
$bus .= "`$Field` like '%$buscar%'";
//$bus .= "`$Field` like '%$buscar%' AND `$Field` like '%$buscarbd%'";
} elseif ($numero>1) {
$bus = "
SELECT *,
MATCH(code, rate, country) AGAINST ('$buscarbd $code' IN BOOLEAN MODE) AS score
FROM `$TableNames[$TableID]`
WHERE ";
$bus .= "MATCH(code, rate, country) AGAINST ('$buscarbd $code' IN BOOLEAN MODE)";}
//$buscarbd .= "MATCH($Field) AGAINST ('$_POST[buscarbd]')";
};
print("<h3 align=center><span class='content'>Search Results</samp></h3>");
$Result = mysql_query($bus);
print(mysql_error());
print("<table align=center class=Table>");
print("<tr class=Header>");
foreach($Fields as $Field)
{
print("<td><b>$Field</b></td>");
};
//print("<td><b>Edit</b></td>");
//print("<td><b></b></td>");
//print("<td><b>Delete</b></td>");
print("<tr>");
$ResultCounter = 0;
while($Raw = mysql_fetch_array($Result))
{
print("<tr class=TableAltRow>");
$temp = "";
foreach($Fields as $Field)
{
if (count($PRS)!=0)
{
if(in_array($Field,$PRS))
{
if(empty($temp))
{
$temp = "$Field = '".$Raw[$Field]."'";
}
else
{
$temp .= " and $Field = '".$Raw[$Field]."'";
}
}
}
print("<td>$Raw[$Field]</td>");
};
if(count($PRS) != 0)
{
?>
</td>
<td> </td>
<?php
}
ELSE
{
echo"<td></td> <td></td>";
}
$ResultCounter++;
print("</tr>");
};
?>
</table>
<?php
if (count($PRS)==0)
{
echo "<p align='center'><font color='#000080'><i>Su Resultado</i></font></p>";
}
?>
<p align="center"><a class="links" href="main.php?table_id=0&Action=Go">Home</a></p>
de nuevo gracias por toda la colaboración prestada