Tras el primer cap?lo de esta serie (Creaci?el documento de b?edas), continuamos con la construcci?e la p?na de resultados.
En el primer cap?lo de esta serie, vimos c?construir la p?na de b?edas. A continuaci?eremos c?construir la p?na de resultados y terminaremos con un tercer cap?lo que muestre las modificaciones necesarias para ASP.
Creamos un archivo llamado resultados.php
Desde el panel de Databases arrastramos la tabla productos sobre el ?a de dise?Al abrirse la interfase de armado de RS le ingresamos un nombre a gusto (ej: rsResultados)
Elegimos Columns: Selected y marcamos productoID + producto + copete, luego en la opci?ilter elegimos:
producto Contains
Form Variable producto
Este paso lo realizamos para poder comprender mejor el c?o.
Ahora pulsamos el bot?k.
Aprovechando Macromedia Dreamweaver MX gen? una Tabla Dinamica que visualice los datos del RS.
Para generarla debemos ir a la Insert Bar -> Application -> Dynamic Table
Elegimos el RS creado, All Records y pulsamos Ok.
Hasta aqu?emos creado un buscador simple que s?busca por un criterio, el campo producto. Prob?slo ejecutando el archivo buscador.php e ingresando algo en el campo para producto.
Ahora procederemos a modificar el c?o para que podamos buscar por los dem?criterios pero respetando si se selecciona tambi?la opci?e todas las marcas o todos los tipos.
Editamos el c?o fuente del archivo resultados.php (podemos utilizar el mismo Macromedia Dreamweaver MX o el bloc de notas o cualquier otro editor de texto)
Ubicamos la l?a que contiene $query_rsResultados= (normalmente ser?la l?a 8)
Esta l?a es la que contiene el string SQL a ejecutar. Visualic?sla un instante para familiarizarnos. Prestemos atenci? la sentencia LIKE.
Bueno primero hemos de modificar el string SQL para que vincule las tres tablas y as?oder potenciar la b?eda permitiendo que se busque en los campos de nombre de marca y tipo.
Para ello rescribiremos la string para que quede de esta forma.
$query_rsResultados = sprintf(“SELECT p.productoID, p.producto, p.copete, m.marca, t.tipo FROM productos p inner join marcas m on p.marcaID=m.marcaID inner join tipos t on p.tipoID=t.tipoID WHERE p.producto LIKE ‘%%%s%%’ or m.marca LIKE ‘%%%s%%’ or t.tipo LIKE ‘%%%s%%’”, $colname_rsResultados, $colname_rsResultados, $colname_rsResultados);
Hasta este momento el buscador realiza su b?eda evaluando si lo ingresado en producto se encuentra en el campo producto de nuestra tabla o en los campos marca o tipo.
Ahora lo modificaremos para que permita tomar los otros criterios.
En la l?a 8 tenemos el c?o del string SQL que ingresamos anteriormente. Borr?slo, y en ese lugar insertemos el c?o que figura a continuaci?
/* Codigo de Buscador */
$smrTipo=0;
$smrMarca=0;
if ( isset( $_POST['marcaID']) ) {
$smrMarca=$_POST['marcaID'];
}
if ( isset( $_POST['tipoID']) ) {
$smrTipo=$_POST['tipoID'];
}
$criterios=”";
if ( $smrTipo!=0) {
$criterios .= ” and t.tipoID=”.$smrTipo.” “;
}
if ( $smrMarca!=0) {
$criterios .= ” and m.marcaID=”.$smrMarca.” “;
}
$query_rsResultados = sprintf(“SELECT p.productoID, p.producto, p.copete, m.marca, t.tipo FROM productos p inner join marcas m on p.marcaID=m.marcaID inner join tipos t on p.tipoID=t.tipoID WHERE ( p.producto LIKE ‘%%%s%%’ or m.marca LIKE ‘%%%s%%’ or t.tipo LIKE ‘%%%s%%’ ) “.$criterios, $colname_rsResultados, $colname_rsResultados, $colname_rsResultados);
/* Fin del codigo de Buscador */
En este c?o cotejamos que nos viene en las variables de formulario marcaID y tipoID para ello hacemos uso de un poco de c?o de php, el cual ustedes ver?optimizado en el c?o final a fin de evitar que dichos par?tros no lleguen al script.
Ahora podemos probarlo!
Tengamos en cuenta que ahora es un buen momento para maquillar como se desee la p?na de resultados, agregando cantidad de registros encontrados, link a una p?na de detalle, o bien la de buscador.
Espero les haya servido y espero sus comentarios al respecto.
Exitos!
buenas! muy bueno el codigo… como podria hacer para agregarle un ORDER BY rand () o algo que me de los resultados de forma aleatoria.
Desde ya muchas graciasss!!!