UNIDAD 7: INTRODUCION A LAS BASES DE DATOS

TEMA LINUX GCC 10: FILTROS

Otro problema similar al anterior es el de filtros es decir en muchas ocasiones es necesario obtener información acerca de un subconjunto de renglones de la tabla.

Por ejemplo todos los estudiantes que sean mayores de 17 años, todos los clientes que sean de Tijuana, etc., a esto le llamamos filtros o condiciones.

Tambien se resuelve de manera similar al anterior, es decir usando la instrucción select etc, from tabla, where CONDICION;

Codigo prog40.html

<HTML>
<FORM ACTION=http://192.168.1.251/~tusitio/cgi-bin/prog40.cgi METHOD=POST>
EDADES MAYORES DE:<INPUT TYPE=text NAME=EDAD> <BR>
<INPUT TYPE=submit VALUE=BUSCAR>
</FORM></HTML>

corrida prog40.html

image124.jpg

prog40.cpp

#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iostream>
#include <lcnet.h>
#include <mysql.h>
using namespace std;
int main()
{
// creando variables globales
MYSQL coneccion;
MYSQL_RES *resultset;
MYSQL_ROW renglon;
// construyendo pagina
cout << "Content-type: text/html\n\n";
cout << "<html>" << endl;
cout << "<TABLE Border=10 CellPadding=5><TR>" << endl ;
cout << "<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th>" << endl;
cout << "<th bgcolor=Red>EDAD</th><th bgcolor=Blue>ESTATURA</th> </TR>"<< endl;
// inicializando y conectando
if ( mysql_init(&coneccion) == NULL)
cout << "error inicializando" << endl;
if ( mysql_real_connect(&coneccion,"localhost","USUARIO","PASSWORD","mibase",0,NULL,0) == NULL )
cout << "error conectando" <<endl;
// construyendo select query
char q[200], temp[20];
strcpy(q,"select * from mitabla where edad >= ") ;
strcpy(temp, getstring("EDAD").c_str() );
strcat(q,temp);
if ( mysql_query(&coneccion,q) !=0) cout << "error en select" <<endl;
// cargando el resultset con la tabla en disco
resultset = mysql_store_result(&coneccion);
if ( resultset==NULL) cout << "error en resultset" << endl;
// construyendo tabla html de despliegue
// y usando algunas funciones de mysql_
for(int r = 1; r <= mysql_num_rows(resultset); r++)
{ renglon = mysql_fetch_row(resultset);
cout << "<TR>" << endl ;
cout << "<TD>" << renglon[0] << "</TD>" << endl;
cout << "<TD>" << renglon[1] << "</TD>" << endl;
cout << "<TD>" << renglon[2] << "</TD>" << endl;
cout << "<TD>" << renglon[3] << "</TD>" << endl;
cout << "</TR>" << endl ;
};
// liberando la memoria del servidor del resultset
mysql_free_result(resultset);
mysql_close(&coneccion);
cout << "</table></html>" << endl;
exit(0);
}

Nota: siguen siendo combinaciones de los programas anteriores pero seria prudente mejor usar dos combobox uno para la variable, otro para el operador relacional y un text para el dato y mandar estos tres datos al prog40.cgi pero eso queda de tarea.

Corrida prog40.cgi

image125.jpg

TAREAS PROGRAMACION LINUX GCC PROGRAMACION LINUX GCC :

1.- preparar programas de filtrado para sus bases de datos, recordar que sus formas html's deben construirlas con 2 combos y un text, suerte

Politica de Privacidad