Foros del Web » Programando para Internet » PHP »

busqueda erronea

Estas en el tema de busqueda erronea en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/09/2003, 01:17
 
Fecha de Ingreso: abril-2003
Ubicación: Venezuela
Mensajes: 297
Antigüedad: 14 años, 8 meses
Puntos: 1
busqueda erronea



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=".$tx t_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_Cri terio=".$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>
__________________
crecer es conocer y conocer es aprender
  #2 (permalink)  
Antiguo 14/09/2003, 06:23
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
porfavor.... podras colorear el code... esq lo leeremos mejor...

[ php]

[ /php]

se hace como el bbcode, quita los espacios en blanco que deje yo, para que vieses el ejemplo.....;)
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 14/09/2003, 06:29
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 8 meses
Puntos: 1
bueno lo que yo dejaria todas las comprobaciones de la variable
$txt_Criterio , como cadena vacia y esas cosas y lo haria directamente

asi,:

si le llega informacion del formulario ejecuta el codigo si no, pues
espera,


if($HTTP_GET_VARS){
$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 . "%'";
}

espero que te sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:23.