Resultado incorrecto, Form de busqueda

jose
14 de Septiembre del 2003
Voy a Formular en forma un poco diferente la Pregunta.

Lo que pasa con este ejemplo es que la primera vez que se carga el ejemplo muestra todos los
resultados que tiene en la tabla comercios. Lo que quiere decir que la llamada variable
txt_Criterio tiene un valor nulo= "" y por eso creo que muestra todo ejemplificando-> como si en google la primera vez que
cargamos google aparecieran los millones de resultados, lo que deseo hacer
es que el usuario sea indicado, de que no incluyó ningún criterio de búsqueda y no que erróneamente
muestre todos los campos.


Debería suceder que si al cargar la pagina como el txt_Criterio va nulo no debería mostar nada y tengo la duda aqui
con un if si se pudiera hacer que si el criterio es "",
El sistema informe no se ha incluido ningún criterio, o la pagina que cargue le formulario nuevamente. Como Si no ubiese
pasado nada como en GOOGLE.com si damos buscar sin haber incluido nada(hagan la prueba).

Lo que pasa es que incluyo el if ($txt_Criterio = ""){Entonces mande mensaje } pero hace caso omiso y muestra todos lo campos o resultados




$txt_Criterio = "";
if ($_GET["txt_Criterio"]!=""){
$txt_Criterio = $_GET["txt_Criterio"];
$txt_Criterio = " where co_id like '%" . $txt_Criterio . "%' or co_nombre like '%" . $txt_Criterio . "%' or co_pais like '%" . $txt_Criterio . "%'";
}


$sql="SELECT * FROM practica.comercios ".$txt_Criterio;
$res=mysql_query($sql);
$numeroRegistros=mysql

Ahí envío todo el código.

<html>

<head>
<title></title>
</head>

<body>

<?php

// LA BASE DATOS DE MI TRABAJO ES MULTIMEDIOS
/* Constitución de la Tabla
/* CREATE TABLE comercios (
co_id varchar(10) NOT NULL default '',
co_nombre varchar(30) NOT NULL default '',
co_pais varchar(30) NOT NULL default '',
UNIQUE KEY co_id (co_id)
) TYPE=MyISAM;

5.- Realizar los siguientes insert


INSERT INTO comercios VALUES ('ESGR000002', 'PRUEBA 2', 'ESPAÑA');
INSERT INTO comercios VALUES ('ESGR000001', 'PRUEBA 1', 'ESPAÑA');
INSERT INTO comercios VALUES ('516', 'JUAN PEREZ', 'MEXICO');
INSERT INTO comercios VALUES ('984', 'ANTONIO RODRIGUEZ', 'MEXICO');
INSERT INTO comercios VALUES ('996', 'INDALECIO TRAVIANNI', 'ARGENTINA');
INSERT INTO comercios VALUES ('975', 'ABELARDO SAINZ', 'PERU');
INSERT INTO comercios VALUES ('111', 'JOSE TOLTACA', 'PERU');
INSERT INTO comercios VALUES ('332', 'RAIMUNDO ALONSO', 'ARGENTINA');
INSERT INTO comercios VALUES ('123', 'JUN JUANES', 'BRASIL');
INSERT INTO comercios VALUES ('585', 'JOAO PAMINHIO', 'BRASIL');
INSERT INTO comercios VALUES ('23432432', 'JOAQUIN DIAZ', 'ESPAÑA');

*/


mysql_connect("localhost","root","prueba");

?>
<html>
<head>
<title>Sistema de Búsqueda</title>
<link rel="stylesheet" type="text/css" href="hoja/hoja.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache" />

<SCRIPT LANGUAGE="JavaScript">
<!--
// VERIFICA CAMPOS VACIOS
//SCRIPT 1
function Enviar(form) {
for (i = 0; i < form.elements.length; i++) {
if (form.elements[i].type == "text" && form.elements[i].value == "") {
alert("Ingrese el título"); form.elements[i].focus();
return false; }
}
form.submit();
}

//*******
//------- para cambiar entre celdas
//SCRIPT 2
function fn(form,field)
{
var next=0, found=false
var f=form
if(event.keyCode!=13) return;
for(var i=0;i<f.length;i++) {
if(field.name==f.item(i).name){
next=i+1;
found=true
break;
}
}
while(found){
if( f.item(next).disabled==false && f.item(next).type!='hidden'){
f.item(next).focus();
break;
}
else{
if(next<f.length-1)
next=next+1;
else
break;
}
}
}

//SCRIPT 3 //POSICIONA EL SETFOCUS
function setfocus(){document.frm_Busca.txt_Criterio.focus();}
// -->
</SCRIPT>

</head>

<body bgcolor="#FFFFFF" onLoad=setfocus()>
<div align="center"><strong><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">
rESULTADOS DE LA bÚSQUEDA</font></strong> </div>
<hr noshade style="color:CC6666;height:1px">
<br>

<!-- Formulario que realizar la Búsqueda-->

<form action="paginacion.php" method="GET" name="frm_Busca">
Criterio de búsqueda:
<input onkeyup=fn(this.form,this) type="text" name="txt_Criterio" size="22" maxlength="150">
<input onClick="return Enviar(this.form)" type="submit" value="Buscar">
</form>
<p></p>
<br>

<?
//inicializo el criterio y recibo cualquier cadena que se desee buscar
$txt_Criterio = "";
if ($_GET["txt_Criterio"]!=""){
$txt_Criterio = $_GET["txt_Criterio"];
$txt_Criterio = " where co_id like '%" . $txt_Criterio . "%' or co_nombre like '%" . $txt_Criterio . "%' or co_pais like '%" . $txt_Criterio . "%'";
}


$sql="SELECT * FROM practica.comercios ".$txt_Criterio;
$res=mysql_query($sql);
$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="co_id";
}
//////////fin elementos de orden

//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$tamPag=5;

//pagina actual si no esta definida y limites
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}
//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 practica.comercios ".$txt_Criterio." ORDER BY ".$orden.",co_id ASC LIMIT ".$limitInf.",".$tamPag;
$res=mysql_query($sql);

//////////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=co_id&criterio=".$txt_Criterio."'>Código</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_nombre&criterio=".$txt_Criterio."'>Nombre</a></th>";
echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_pais&criterio=".$txt_Criterio."'>País</a></th>";
while($registro=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"];">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_id"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_nombre"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_pais"]; ?></b></font></td>
</tr>
<!-- fin tabla resultados -->
<?
}//fin while
echo "</table>";
}//fin if
//////////a partir de aqui viene la paginacion
?>
<br>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr><td align="center" valign="top">
<?
if($pagina>1)
{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&txt_Criterio=".$txt_Criterio."'>";
echo "<font face='verdana' size='-2'>anterior</font>";
echo "</a> ";
}

for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<font face='verdana' size='-2'><b>".$i."</b> </font>";
}else{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&txt_Criterio=".$txt_Criterio."'>";
echo "<font face='verdana' size='-2'>".$i."</font></a> ";
}
}
if($pagina<$numPags)
{
echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&txt_Criterio=".$txt_Criterio."'>";
echo "<font face='verdana' size='-2'>siguiente</font></a>";
}
//////////fin de la paginacion
?>
</td></tr>
</table>
<hr noshade style="color:CC6666;height:1px">
<div align="center"><font face="verdana" size="-2"><a class="p" href="">::Inicio::</a></font></div>
</body>
</html>
<?
mysql_close();
?>


</body>

</html>