Foros del Web » Programando para Internet » PHP »

Busquedas

Estas en el tema de Busquedas en el foro de PHP en Foros del Web. hola a todos, en esta ocacion vengo para preguntar algun metodo de busqueda, pues, lo unico que se me ocurre es lo siguiente, pero quiza ...
  #1 (permalink)  
Antiguo 06/09/2004, 10:09
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 13 años, 5 meses
Puntos: 53
Busquedas

hola a todos, en esta ocacion vengo para preguntar algun metodo de busqueda, pues, lo unico que se me ocurre es lo siguiente, pero quiza halla una mejor manera.

Código PHP:
//hago la coneccion con la DB
//recibo deun formulario, en nombre a buscar
$sql="SELECT * FROM alumnos"
$res=mysql_query($sql,$PtrDb);
$Info=mysql_fetch_object($res);

while(
$Info=mysql_fetch_object($res)){
        if(
$Info->Nombre==$busqueda)
           echo 
"$Info->Matricula $Info->Nombre $Info->Apellido<br>";

Me gustaria saber si hay algun otro metodo mas efectivo, pues la base de datos contiene varios cientos de alumnos, no se si hay un metodo mas rapido, en fin es una consulta.
  #2 (permalink)  
Antiguo 06/09/2004, 11:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
stock

Debes emplear el lenguaje SQL (Lenguaje estructurado de consultas) .. El "SQL" esta para seleccionar los "resultados" que esperas de tu consulta a ejecutar .. Por ejemplo si quieres buscar las coincidencias de tal campo de tal tabla (o campos en tablas) que coincidan con tal "variable" .. debes hacer una consulta "condicional" tipo:

SELECT * FROM tabla WHERE campo='$condicion'

o Incluso un "LIKE" que se usa para decir "que contenga o que empiece o que termine" en tu "$condicion tipo:

SELECT * FROM tabla WHERE campo LIKE '%$condicion%'

Con esas consultas "condicionales" obtendras sólo los registros que ahí especificas ni más ni menos, así que no hará falta más "if" de PHP por médio para llegar a tu resultado.

Cuanto más SQL uses mejor será el rendimiendo de tus consultas a tu BD.

En fin .. todo esto es SQL. Te recomiendo la lectura de los tutoriales al respecto de:
www.mysql-hispano.com

Y el manual oficial de Mysql:
www.mysql.com


Un saludo,
  #3 (permalink)  
Antiguo 06/09/2004, 11:17
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 13 años, 5 meses
Puntos: 53
entonces, haciendo la consulta condicional, el resultado que arrojara laconsulta solo sera un registro, o todos los registros que contengan esa condicion??

Si me arroja todos, imagino que igualtengo que hacer un ciclo, para desplegar todos los resultados, no??

Thanks por la ayuda!!
  #4 (permalink)  
Antiguo 06/09/2004, 12:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
entonces, haciendo la consulta condicional, el resultado que arrojara laconsulta solo sera un registro, o todos los registros que contengan esa condicion??
Si, .. de 0 a N registros .. Con un condicional tipo "WHERE campo='valor'" y siendo campo "unico" (no hay repetidos) debería arrojarte 1 o 0 registros como resultados. En un "LIKE" es más probable que obtengas más de un registro.

Cita:
Si me arroja todos, imagino que igualtengo que hacer un ciclo, para desplegar todos los resultados, no??
Usando el mismo bucle while() que ya usas para recorrer un "SELECT" normal donde estás "pidiendo" todos los registros de esa tabla(s) implicadas.

Si sabes seguro que sólo vas a obtener un registro o cero puedes usar mysql_result() previamente determinado si arrojó tu consulta más de un registro usando: mysql_num_rows()

Más info:

www.php.net/mysql

Un saludo,
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 05:33.