Inicio

viernes, 16 de septiembre de 2011

Consulta con WHERE y LIKE

Siguiendo con los tipos de consulta que podemos realizar a nuestra BD , puede surgir la necesidad de filtrar la misma bajo ciertos criterios. Supongamos que deseamos recuperar aquellas entradas de nuestro ejemplo que cuyos nombre comiencen por la letra J. Necesitamos echar mano de la sintáxis SQL y emplear los operadores WHERE (donde) y LIKE(como). Veamos el ejemplo:
<html>
<head>
       <title>Petición a BD con WHERE</title>
</head>

<body>
Solicitud de nombre de personas que empiecen por la letra "J".<br>
<?php
//realizando la conexión
mysql_connect("localhost","root") or die(mysql_error());
mysql_select_db("directorio") or die(mysql_error());

//obteniendo un resultado específico de la tabla example
$resultado=mysql_query("SELECT * FROM example WHERE nombre Like 'J%'" ) or die(mysql_error());
$num_rows = mysql_num_rows($resultado);
echo "Se han encontrado en total $num_rows nombres<br>";
while($row = mysql_fetch_array($resultado)){
// Presentando los resultados

echo $row['nombre']." -> ".$row['edad']."<br>";
}

?>
</body>
</html>

He resaltado la sentencia en negrita para explicarla. Con la misma solicitamos todos aquellos datos de la tabla "donde" nombre sea "como" J más los datos que sigan.
Un resumen de estos comodines:
EjemploDescripción
LIKE 'A%'Todo lo que comience por A
LIKE '_NG'Todo lo que comience por cualquier carácter y luego siga NG
LIKE '[AF]%'Todo lo que comience por A ó F
LIKE '[A-F]%'Todo lo que comience por cualquier letra comprendida entre la A y la F
LIKE '[A^B]%'Todo lo que comience por A y la segunda letra no sea una B
Por último con la sentencia que reescribo más abajo contamos el número de filas que devuelve  la consulta:
$num_rows = mysql_num_rows($resultado);

No hay comentarios:

Publicar un comentario