Búsqueda de varias tablas php+mysql
Amigo resulta que estoy realizando una consulta, La idea es buscar la palabra que introduce alguien desde un formulario.
Estoy usando el like pero no me quiere funcionar por ningún lado, ¿es tan amable y me regala una mano para poder hacer la consulta? Aquí le envío el código que estoy desarrollando, le agradezco por su atención:
<?
//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "";
$txt_criterio = "";
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
//WHERE noticias.titulo LIKE '%$busqueda%' OR noticias.titulo like '%$busqueda%' OR novedades.titulo like '%$busqueda%' BY noticias.id desc
$criterio = "where a.PLU like '%" . $txt_criterio . "%' or a.ProNombrComer like '%" . $txt_criterio . "%' or b.CatNombre like '%" . $txt_criterio . "%' or c.SubNombre like '%" . $txt_criterio . "%' or d.PrvNombre like '%" . $txt_criterio . "%' or VecFecha like '%" . $txt_criterio . "%'";
}
$sql="SELECT a.PLU, a.ProNombrComer, b.CatNombre, c.SubNombre, d.PrvNombre, DATE_FORMAT(VecFecha,'%d/%m/%Y') AS VecFecha
from elipsis_productos a inner join elipsis_subcategorias c on a.SubCodigo = c.SubCodigo
inner join elipsis_categorias b on b.CatCodigo = c.CatCodigo
inner join elipsis_prvproalm f on a.ProCodigo = f.ProCodigo
inner join elipsis_ventas g on f.ProCodigo = g.ProCodigo
inner join elipsis_vencimientos e on e.VenCodigo = g.VenCodigo
inner join elipsis_proveedores d on f.PrvCodigo = d.PrvCodigo" . $criterio;
$res=mysql_query($sql) or die(mysql_error());
$numeroRegistros=mysql_num_rows($res);
if($numeroRegistros<=0)
{
echo "
<div align='center'>";
echo "<font face='verdana' size='-2'>No se encontraron resultados</font>";
echo "</div>
";
}else{
//////////elementos para el orden
if(!isset($orden))
{
$orden="a.PLU";
}
//////////fin elementos de orden
//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$tamPag=2;
//pagina actual si no esta definida y limites
if(!isset($_GET["pagina"]))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$pagina = $_GET["pagina"];
}
//calculo del limite inferior
$limitInf=($pagina-1)*$tamPag;
//calculo del numero de paginas
$numPags=ceil($numeroRegistros/$tamPag);
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$seccionActual=intval(($pagina-1)/$tamPag);
$inicio=($seccionActual*$tamPag)+1;
if($pagina<$numPags)
{
$final=$inicio+$tamPag-1;
}else{
$final=$numPags;
}
if ($final>$numPags){
$final=$numPags;
}
}
//////////fin de dicho calculo
//////////creacion de la consulta con limites
$sql="SELECT a.PLU, a.ProNombrComer, b.CatNombre, c.SubNombre, d.PrvNombre, DATE_FORMAT(VecFecha,'%d/%m/%Y') AS VecFecha
from elipsis_productos a inner join elipsis_subcategorias c on a.SubCodigo = c.SubCodigo
inner join elipsis_categorias b on b.CatCodigo = c.CatCodigo
inner join elipsis_prvproalm f on a.ProCodigo = f.ProCodigo
inner join elipsis_ventas g on f.ProCodigo = g.ProCodigo
inner join elipsis_vencimientos e on e.VenCodigo = g.VenCodigo
inner join elipsis_proveedores d on f.PrvCodigo = d.PrvCodigo".$criterio." ORDER BY ".$orden.",a.PLU ASC LIMIT ".$limitInf.",".$tamPag;
$res=mysql_query($sql) or die(mysql_error());
mysql_close();
/*while ($row1 = mysql_fetch_array($result)){
$respuesta.= "&fecha$i=".date_format($row['VecFecha'],'%d/%m/%Y');
$respuesta.= "&body$i++=".$row1['body'];
}
echo $respuesta;*/
//////////fin consulta con limites
echo "
<div align='center'>";
echo "<font face='verdana' size='-2'>encontrados ".$numeroRegistros." resultados<br>";
echo "ordenados por <b>".$orden."</b>";
if(isset($txt_criterio)){
echo "<br>Valor filtro: <b>".$txt_criterio."</b>";
}
echo "</font></div>
";
echo "
<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0'>
";
echo "
<tr>
<td colspan='3'>
<hr noshade>
</td>
</tr>
";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=PLU&criterio=".$txt_criterio."'>Plu</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=ProNombrComer&criterio=".$txt_criterio."'>Nombre Comercial</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=CatNombre".$txt_criterio."'>Nombre Categoria</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=SubNombre&criterio=".$txt_criterio."'>Nombre Subcategoria</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=PrvNombre&criterio=".$txt_criterio."'>Proveedor</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=VecFecha&criterio=".$txt_criterio."'>Fecha Vencimiento</a></th>";
while($row=mysql_fetch_array($res))
{
?>
<!-- tabla de resultados -->
<tr bgcolor="#CC6666" onMouseOver="this.style.backgroundColor='#FF9900';this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='#CC6666'"o"];" onClick="javascript:muestra('<? Echo "[".$row["a.PLU"]."] ".$row["a.ProNombrComer"]." - ".$row["b.CatNombre"] ." - ".$row["c.SubNombre"]." - ".$row["d.PrvNombre"]." - ".$row["d.VecFecha"] ; ?>
');">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? Echo $row["PLU"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? Echo $row["ProNombrComer"]; ?></b></font></td>
<td><font size="2"...
Estoy usando el like pero no me quiere funcionar por ningún lado, ¿es tan amable y me regala una mano para poder hacer la consulta? Aquí le envío el código que estoy desarrollando, le agradezco por su atención:
<?
//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "";
$txt_criterio = "";
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
//WHERE noticias.titulo LIKE '%$busqueda%' OR noticias.titulo like '%$busqueda%' OR novedades.titulo like '%$busqueda%' BY noticias.id desc
$criterio = "where a.PLU like '%" . $txt_criterio . "%' or a.ProNombrComer like '%" . $txt_criterio . "%' or b.CatNombre like '%" . $txt_criterio . "%' or c.SubNombre like '%" . $txt_criterio . "%' or d.PrvNombre like '%" . $txt_criterio . "%' or VecFecha like '%" . $txt_criterio . "%'";
}
$sql="SELECT a.PLU, a.ProNombrComer, b.CatNombre, c.SubNombre, d.PrvNombre, DATE_FORMAT(VecFecha,'%d/%m/%Y') AS VecFecha
from elipsis_productos a inner join elipsis_subcategorias c on a.SubCodigo = c.SubCodigo
inner join elipsis_categorias b on b.CatCodigo = c.CatCodigo
inner join elipsis_prvproalm f on a.ProCodigo = f.ProCodigo
inner join elipsis_ventas g on f.ProCodigo = g.ProCodigo
inner join elipsis_vencimientos e on e.VenCodigo = g.VenCodigo
inner join elipsis_proveedores d on f.PrvCodigo = d.PrvCodigo" . $criterio;
$res=mysql_query($sql) or die(mysql_error());
$numeroRegistros=mysql_num_rows($res);
if($numeroRegistros<=0)
{
echo "
<div align='center'>";
echo "<font face='verdana' size='-2'>No se encontraron resultados</font>";
echo "</div>
";
}else{
//////////elementos para el orden
if(!isset($orden))
{
$orden="a.PLU";
}
//////////fin elementos de orden
//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$tamPag=2;
//pagina actual si no esta definida y limites
if(!isset($_GET["pagina"]))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$pagina = $_GET["pagina"];
}
//calculo del limite inferior
$limitInf=($pagina-1)*$tamPag;
//calculo del numero de paginas
$numPags=ceil($numeroRegistros/$tamPag);
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$seccionActual=intval(($pagina-1)/$tamPag);
$inicio=($seccionActual*$tamPag)+1;
if($pagina<$numPags)
{
$final=$inicio+$tamPag-1;
}else{
$final=$numPags;
}
if ($final>$numPags){
$final=$numPags;
}
}
//////////fin de dicho calculo
//////////creacion de la consulta con limites
$sql="SELECT a.PLU, a.ProNombrComer, b.CatNombre, c.SubNombre, d.PrvNombre, DATE_FORMAT(VecFecha,'%d/%m/%Y') AS VecFecha
from elipsis_productos a inner join elipsis_subcategorias c on a.SubCodigo = c.SubCodigo
inner join elipsis_categorias b on b.CatCodigo = c.CatCodigo
inner join elipsis_prvproalm f on a.ProCodigo = f.ProCodigo
inner join elipsis_ventas g on f.ProCodigo = g.ProCodigo
inner join elipsis_vencimientos e on e.VenCodigo = g.VenCodigo
inner join elipsis_proveedores d on f.PrvCodigo = d.PrvCodigo".$criterio." ORDER BY ".$orden.",a.PLU ASC LIMIT ".$limitInf.",".$tamPag;
$res=mysql_query($sql) or die(mysql_error());
mysql_close();
/*while ($row1 = mysql_fetch_array($result)){
$respuesta.= "&fecha$i=".date_format($row['VecFecha'],'%d/%m/%Y');
$respuesta.= "&body$i++=".$row1['body'];
}
echo $respuesta;*/
//////////fin consulta con limites
echo "
<div align='center'>";
echo "<font face='verdana' size='-2'>encontrados ".$numeroRegistros." resultados<br>";
echo "ordenados por <b>".$orden."</b>";
if(isset($txt_criterio)){
echo "<br>Valor filtro: <b>".$txt_criterio."</b>";
}
echo "</font></div>
";
echo "
<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0'>
";
echo "
<tr>
<td colspan='3'>
<hr noshade>
</td>
</tr>
";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=PLU&criterio=".$txt_criterio."'>Plu</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=ProNombrComer&criterio=".$txt_criterio."'>Nombre Comercial</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=CatNombre".$txt_criterio."'>Nombre Categoria</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=SubNombre&criterio=".$txt_criterio."'>Nombre Subcategoria</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=PrvNombre&criterio=".$txt_criterio."'>Proveedor</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina = ".$pagina."&orden=VecFecha&criterio=".$txt_criterio."'>Fecha Vencimiento</a></th>";
while($row=mysql_fetch_array($res))
{
?>
<!-- tabla de resultados -->
<tr bgcolor="#CC6666" onMouseOver="this.style.backgroundColor='#FF9900';this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='#CC6666'"o"];" onClick="javascript:muestra('<? Echo "[".$row["a.PLU"]."] ".$row["a.ProNombrComer"]." - ".$row["b.CatNombre"] ." - ".$row["c.SubNombre"]." - ".$row["d.PrvNombre"]." - ".$row["d.VecFecha"] ; ?>
');">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? Echo $row["PLU"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? Echo $row["ProNombrComer"]; ?></b></font></td>
<td><font size="2"...
1 respuesta
Respuesta de davidcortesb
1