PHP - Mostrar resultado de busquedas

   
Vista:

Mostrar resultado de busquedas

Publicado por Leonardo Alvis (10 intervenciones) el 30/03/2013 23:19:26
Buenas tardes cordial saludo:

Estoy realizando un ejercicio donde se me pide realizar la búsqueda de un producto determinado de acuerdo al código del mismo. Los resultados deben ser presentados en la misma pagina donde se hace la busqueda. Adjunto el código de los 3 archivos de lo que llevo hecho y que están enlazados para realizar la busqueda. El problema es que no se esta ejecutando la consulta, Agradezco la ayuda al respecto:

ClassBusqueda.php


<?php
require("Conectar.php");
class ClassBusqueda
{
private $pBuscar;

public function __construct()
{
$this->pBuscar=array();
}

public function busqueda()
{
$sql="select * from productos where codigo ='".$_POST["codigo"]."'";
$res=mysql_query($sql,Conectar::con());
if(mysql_num_rows($res)==0)
{
header("Location:busc_producto.php?m=1");

}else{
while($reg=mysql_fetch_assoc($res))
{
$this->pBuscar[]=$reg;
}
return $this->pBuscar;
header("Location:busc_producto.php?m=2");
}
}
}



busc_producto.php



<?php
require("clases/ClassBusqueda.php");
$obj=new ClassBusqueda();
if(isset($_POST["busc"]) and $_POST["busc"]=="si")
{
$obj->busqueda();
exit;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<?php
if(isset($_GET["m"]))
{
switch ($_GET["m"])
{
case '1':
?>
<h3 style="color:#F00">El codigo digitado no existe</h3>


<?php
break;

case '2':
$datos=$obj->busqueda();
foreach($datos as $d)
{
?>
<strong>Nombre de producto</strong> <?php echo $d["producto"];?>
<br />
<strong>Precio</strong> <?php echo $d["precio"]; ?>
<br />
<strong>Codigo</strong> <?php echo $d["codigo"];

}

}
}
?>
<h3>Busqueda de productos</h3>
<form name="form" action="" method="post">

<input type="text" name="codigobus" />
<hr />
<input type="hidden" name="busc" value="si" />
<input type="submit" value="buscar" title="Buscar" />
</form>
</body>
</html>





Conectar.php


<?php
class Conectar
{
public static function con()
{
$con=mysql_connect("localhost","root","");
if(!$con)
{
echo "Error sql";
exit;
}
mysql_query("SET NAMES 'utf8'");
mysql_select_db("modulo3");
return $con;
}
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Mostrar resultado de busquedas

Publicado por xve (5523 intervenciones) el 31/03/2013 11:14:12
Hola Leonardo, visto un poco por encima, parece que el problema lo tienes aquí:
1
$sql="select * from productos where codigo ='".$_POST["codigo"]."'";

No existe $_POST["codigo"], ya que en el formulario lo has nombrado como codigobus por lo que creo que tendría que ser:
1
$sql="select * from productos where codigo ='".$_POST["codigobus"]."'";


Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar resultado de busquedas

Publicado por Gracias xve (10 intervenciones) el 31/03/2013 16:01:55
Gracias xve, agradezco la observación, ya la corregí pero sigue sin funcionar. no me ejecuta la busqueda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Mostrar resultado de busquedas

Publicado por xve (5523 intervenciones) el 01/04/2013 10:00:41
Hola Leonardo, a simple vista no se que puede ser...
puede poner:
1
exit($sql);

debajo de:
1
$sql="select * from productos where codigo ='".$_POST["codigobus"]."'";

Para ver que la consulta la este haciendo correctamente?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar resultado de busquedas

Publicado por DEVILSITO (141 intervenciones) el 03/04/2013 14:30:23
Y porque no usas JQgrid, esto hace lo que tu quieres, y mucho mas
Revisa:
http://www.trirand.com/blog/jqgrid/jqgrid.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar