este es el codigo de la pagina directorio.php Al pulsar el en lace va a la otra pagina resultados.php
Código PHP:
<?
echo "<table><tr><td width=216 align=left valign=top>";
$conexion = mysql_connect("localhost","XXX","XXX") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("principal",$conexion) or die("No se puede seleccionar BD");
$consulta = "SELECT DISTINCT id_categoria,categoria FROM categorias ORDER BY categoria ASC";
$res=mysql_query($consulta);
$counter=0;
while($row=mysql_fetch_array($res)){
if($counter%70==0 && $counter!=0){
echo "</td><td width=216 align=left valign=top>";
}
echo "<font color=#2278BB>• <a href='categorias.php?id_categoria=$row[id_categoria]'>".$row[categoria]."</a><br>";
$counter++;
}
echo "</td></tr></table>";
?>
sta es la pagina de resultados, funciona todo muy bien excepto eso, si hay coincidencia de caracteres en el nombre o el id o lo que sea, lo toma como parte de la categoria
Código PHP:
<?
$conexion = mysql_connect("localhost","XXX","XXX") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("principal",$conexion) or die("No se puede seleccionar BD");
//$link=Conectarse();
//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "";
$txt_criterio = "";
if (isset($id_categoria)){
$txt_criterio=$id_categoria;
$criterio = " where id_categoria like '%" . $txt_criterio . "%' or categoria like '%" . $txt_criterio . "%' or subcategoria like '%" . $txt_criterio . "%'";
}
else{
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
$criterio = " where id_categoria like '%" . $txt_criterio . "%' or categoria like '%" . $txt_criterio . "%' or subcategoria like '%" . $txt_criterio . "%'";
}
else
if ($_POST){
$txt_criterio = $_POST["palabra"];
$criterio = " where id_categoria like '%" . $txt_criterio . "%' or categoria like '%" . $txt_criterio . "%' or subcategoria like '%" . $txt_criterio . "%'";
}
}
$sql="SELECT * FROM clientes".$criterio;
$res=mysql_query($sql);
$numeroRegistros=mysql_num_rows($res);
if($numeroRegistros<=0)
{
echo "<br><br><br><div align='center'>";
echo "<font face='arial' class='texto'>Aún no tenemos clientes registrados en la categoría seleccionada.</font>";
echo "</div>";
}else{
//////////elementos para el orden
if(!isset($orden))
{
$orden="nombre";
}
//////////fin elementos de orden
//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$tamPag=4;
//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 * FROM clientes ".$criterio." ORDER BY ".$orden.",nombre ASC LIMIT ".$limitInf.",".$tamPag;
$res=mysql_query($sql);
//////////fin consulta con limites
/// estadisticas/////
echo "<br><br><br><div align='center'>";
echo "<font face='arial' class='texto'>Existen ".$numeroRegistros." clientes registrados en nuestra base de datos para ésta categoría.<br>";
echo "Los resultados se mostrarán en " . $numPags . " páginas<br><br>";
?>
<div align="center"><img src="imagenes/linea_google.gif" width="450" height="10"></div>
<?
/// mostrar los resultados encontrados//////
while($registro=mysql_fetch_array($res))
{
echo "<br><div align='left'>";
echo "<br><br><b><a href=".$registro[url]." target=_blank>".$registro[nombre]."</a></b><br>";
echo "".$registro[descripcion]."<br><br>";
echo "Dirección: ".$registro[direccion]."<br>";
echo "Teléfonos: ".$registro[telefonos]."<br>";
echo "Correo electrónico: <a href='correo_usuario.php?email=".$registro[email_uno]."'>".$registro[email_uno]."</a> ";
if (!empty($registro[email_dos])){
echo "- <a href='correo_usuario_dos.php?email=".$registro[email_dos]."'>".$registro[email_dos]."</a><br>";
echo "Ubicación: ".$registro[barrio]."<br><br>";
echo "Categoría: ".$registro[categoria]."";
if (!empty($registro[subcategoria])){
echo " - ".$registro[subcategoria]."<br><br><br>";
}
}
}//fin while
}
//////////a partir de aqui viene la paginacion
?>
He estado investigando lo de las expresiones regulares pero no encuentro solucion. Todas lo que hacen es comparar no limitar igualdades.