CONSULTAS EN PHPPara poder realizar consultas con Php, se debe tener primero una tabla creada en una base de datos mediante MySQL. Suponiendo que la tabla ya está creada, tomando como ejemplo la que aparece a continuación se realizan distintos tipos de consultas:Nombre de la tabla: usuarios+----+--------+------+----------+---------------------+---------+| id | nombre | edad | lugar | aficiones | id_blog | +----+--------+------+----------+---------------------+---------+| 1 | pepe | 25 | Madrid | leer | 1 | || 2 | Juan | 30 | Valencia | comer | 2 | || 3 | Ana | 20 | Mallorca | dormir | 3 | || 4 | Pedro | 17 | Cádiz | jugar al baloncesto | 4 | || 5 | Maria | 23 | Mallorca | Bailar | 5 | +----+--------+------+----------+---------------------+---------1. Consulta de todas las filas de un campo:En éste caso vamos a obtener de la consulta el nombre y el primer paso es asignar una variable que contendrá la consulta (lo que queremos buscar), por ejemplo $nombre, ésta variable la igualamos a la consulta:Campo que queremosVisualizar$nombre=”select nombre from usuarios”; Tabla en la que buscamos$i=0 //Cuando la tabla contiene más de una fila (en éste caso del campo nombre) se iguala $i a 0, puede ser cualquier letra.Ahora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($nombre,$conexion);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if($consulta!= NULL)//Comparamos que la consulta no sea null, es decir, que contenga algo.{if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){while($fila=mysql_fetch_array($consulta)) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable {$nombre_usuario[$i]=$fila[‘nombre’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)echo $nombre_usuario[$i]; //Imprime el resultado. [$i], se utiliza cuando los resultados son varios$i++;//Cierra el array}}}El resultado de ésta consulta será: pepe, Juan, Ana, Pedro, María.2. Consulta de todas las filas de dos campos:En éste caso vamos a obtener de la consulta el nombre y la id. El primer paso es asignar una variable que contendrá la consulta (lo que queremos buscar), por ejemplo $nombre, ésta variable la igualamos a la consulta:Campo que queremosVisualizar$id_nombre=”select id,nombre from usuarios”; Tabla en la que buscamos$i=0 //Cuando la tabla contiene más de una fila (en éste caso del campo nombre) se iguala $i a 0, puede ser cualquier letra.Ahora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($id_nombre,$conexion);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if($consulta!= NULL)//Comparamos que la consulta no sea null, es decir, que contenga algo.{if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){while($fila=mysql_fetch_array($consulta)) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable {$nombre_usuario[$i]=$fila[‘nombre’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)$id[$i]=$fila[‘id’];echo $id[$i]; echo $nombre_usuario[$i]; //Imprime el resultado. [$i], se utiliza cuando los resultados son varios$i++;//Cierra el array}}}El resultado de ésta consulta será:nombre: pepe, Juan, Ana, Pedro, María. Id: 1,2,3,4,53. Consulta de una fila cuando el campo sea = a un valor:En éste caso vamos a obtener de la consulta el nombre cuando la id sea =1 y el primer paso es asignar una variable que contendrá la consulta (lo que queremos buscar), por ejemplo $nombre, ésta variable la igualamos a la consulta:Campo que queremosVisualizar$nombre=”select nombre from usuarios where id=1”; Tabla en la que buscamosAhora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($nombre,$conexión);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){$fila=mysql_fetch_array($consulta) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable $nombre_usuario=$fila[‘nombre’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)echo $nombre_usuario; //Imprime el resultado. }En éste caso, el resultado de la consulta será: pepe.4. Consulta de una fila cuando el campo sea igual a 2 valores:Ahora vamos a obtener de la consulta el nombre cuando la id sea =2 y al lugar sea = Valencia. El primer paso es asignar una variable que contendrá la consulta (lo que queremos buscar), por ejemplo $nombre, ésta variable la igualamos a la consulta:Campo que queremosVisualizar$nombre=”select nombre from usuarios where id=2 and lugar=’Valencia’”; Tabla en la que buscamosAhora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($nombre,$conexión);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){$fila=mysql_fetch_array($consulta) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable $nombre_usuario=$fila[‘nombre’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)echo $nombre_usuario; //Imprime el resultado. }En éste caso, el resultado de la consulta será: Juan.
5. Consulta de una fila cuando el campo sea igual a un array:En éste caso vamos a obtener de la consulta el nombre cuando la id sea =$id y el primer paso es asignar una variable que contendrá la consulta (lo que queremos buscar), por ejemplo $nombre, ésta variable la igualamos a la consulta:Campo que queremosVisualizar$nombre=”select nombre from usuarios where id=$id”; Tabla en la que buscamos$i=0 //Cuando la tabla contiene más de una fila (en éste caso del campo nombre) se iguala $i a 0, puede ser cualquier letra.Ahora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($nombre,$conexión);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if($consulta!= NULL)//Comparamos que la consulta no sea nuul,es decir, que contenga algo.{if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){while($fila=mysql_fetch_array($consulta)) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable {$nombre_usuario[$i]=$fila[‘nombre’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)echo $nombre_usuario[$i]; //Imprime el resultado. [$i], se utiliza cuando los resultados son varios$i++;//Cierra el array}}}6. Ordenar una consulta de manera descendente:En éste caso vamos a obtener de la consulta la id y vamos a colocarla de orden descendente y el primer paso es asignar una variable que contendrá la consulta (lo que queremos buscar), por ejemplo $id, ésta variable la igualamos a la consulta:Campo que queremosVisualizar$id=”select id from usuarios”; Tabla en la que buscamos$i=0 //Cuando la tabla contiene más de una fila (en éste caso del campo nombre) se iguala $i a 0, puede ser cualquier letra.Ahora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($id,$conexion);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if($consulta!= NULL)//Comparamos que la consulta no sea null, es decir, que contenga algo.{if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){while($fila=mysql_fetch_array($consulta)) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable {$id_usuario[$i]=$fila[‘id’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)echo $id_usuario[$i]; //Imprime el resultado. [$i], se utiliza cuando los resultados son varios$i++;//Cierra el array}}}El resultado de ésta consulta será:5,4,3,2,1.Nota: Para colocar el resultado de forma ascendente no hay que hacer nada (no se pone Order by).7. Consulta limitada a un número de registros:Ahora vamos a obtener de la consulta el nombre desde la id que queramos de un número determinado de registros y vamos a colocarla de orden ascendente y el primer paso es asignar una variable que contendrá la consulta (lo que queremos buscar), por ejemplo $nombre, ésta variable la igualamos a la consulta:Campo que queremos ordenador por empieza desde nº deVisualizar la id el siguiente registrosRegistro(1) que cuenta$nombre=”select nombre from usuarios order by id limit 0,2”; Tabla en la que buscamos$i=0 //Cuando la tabla contiene más de una fila (en éste caso del campo nombre) se iguala $i a 0, puede ser cualquier letra.Ahora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($nombre,$conexion);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if($consulta!= NULL)//Comparamos que la consulta no sea null, es decir, que contenga algo.{if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){while($fila=mysql_fetch_array($consulta)) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable {$nombre_usuario[$i]=$fila[‘nombre’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)echo $nombre_usuario[$i]; //Imprime el resultado. [$i], se utiliza cuando los resultados son varios$i++;//Cierra el array}}}El resultado de ésta consulta será: pepe, Juan (en éste orden).8. Consulta para encontrar nombres que empiezan por una letra:Ahora vamos a obtener de la consulta los nombres que empiezan con la letra “p” y el primer paso es asignar una variable que contendrá la consulta (lo que queremos buscar), por ejemplo $nombre, ésta variable la igualamos a la consulta:$nombre=”select * from usuarios where nombre like “p%””; Tabla en la que buscamos$i=0 //Cuando la tabla contiene más de una fila (en éste caso del campo nombre) se iguala $i a 0, puede ser cualquier letra.Ahora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($nombre,$conexion);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if($consulta!= NULL)//Comparamos que la consulta no sea null, es decir, que contenga algo.{if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){while($fila=mysql_fetch_array($consulta)) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable {$nombre_usuario[$i]=$fila[‘nombre’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)echo $nombre_usuario[$i]; //Imprime el resultado. [$i], se utiliza cuando los resultados son varios$i++;//Cierra el array}}}El resultado de ésta consulta será: pepe, pedroNota: La consulta también puede hacerse:select * from usuarios where nombre regexp binary “^p”;**
9. Consulta para encontrar nombres que acaben en una letra:Ahora vamos a obtener de la consulta los nombres que acaban “a” y el primer paso es asignar una variable que contendrá la consulta (lo que queremos buscar), por ejemplo $nombre, ésta variable la igualamos a la consulta:$nombre=”select * from usuarios where nombre regexp “a$””;** Tabla en la que buscamos$i=0 //Cuando la tabla contiene más de una fila (en éste caso del campo nombre) se iguala $i a 0, puede ser cualquier letra.Ahora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($nombre,$conexion);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if($consulta!= NULL)//Comparamos que la consulta no sea null, es decir, que contenga algo.{if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){while($fila=mysql_fetch_array($consulta)) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable {$nombre_usuario[$i]=$fila[‘nombre’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)echo $nombre_usuario[$i]; //Imprime el resultado. [$i], se utiliza cuando los resultados son varios$i++;//Cierra el array}}}El resultado de ésta consulta será: ana y maríaNota: La consulta también puede hacerse:select * from usuarios where nombre like “%a”;10. Consulta para encontrar nombres que contengan una letra:Ahora vamos a obtener de la consulta los nombres que contienen la letra “r” y el primer paso es asignar una variable que contendrá la consulta (lo que queremos buscar), por ejemplo $nombre, ésta variable la igualamos a la consulta:$nombre=”select * from usuarios where nombre regexp “s””;** Tabla en la que buscamos$i=0 //Cuando la tabla contiene más de una fila (en éste caso del campo nombre) se iguala $i a 0, puede ser cualquier letra.Ahora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($nombre,$conexion);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if($consulta!= NULL)//Comparamos que la consulta no sea null, es decir, que contenga algo.{if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){while($fila=mysql_fetch_array($consulta)) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable {$nombre_usuario[$i]=$fila[‘nombre’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)echo $nombre_usuario[$i]; //Imprime el resultado. [$i], se utiliza cuando los resultados son varios$i++;//Cierra el array}}}El resultado de ésta consulta será: pedro y maríaNota: La consulta también puede hacerse:select * from usuarios where nombre like “%s%”;11. Consulta a varias tablas:En éste caso utilizaremos las siguientes tablas:Nombre de la tabla: usuarios+----+---------------------+-----------+-----------+------------+--------| id | nombre | apellido1 | apellido2 | telefono | usuario +----+---------------------+-----------+-----------+------------+--------| 1 | usuario desconocido | NULL | NULL | NULL | juan | 2 | Chuky | NULL | NULL | NULL | NULL | 3 | William | NULL | NULL | NULL | NULL | 4 | Anna | NULL | NULL | NULL | NULL | 5 | Gemma | NULL | NULL | NULL | NULL | 6 | Irene | NULL | NULL | NULL | NULL Nombre de la tabla: comentarios_blog+----+---------+-------------------+--------------| id | id_blog | descripcion id_usuario || +----+---------+--------------+-------------------| 3 | 79 | rrr 24 | | 4 | 81 | hola holita 24 | | 5 | 81 | fghfghfgh 24 | | 6 | 81 | vvvvvvvv 24 | | 7 | 80 | hola 24 | | 8 | 79 | hola hola 39 | En ésta consulta vamos a utilizar dos tablas es decir queremos el resultado cuando la id_usuario de la tabla comentarios_blog sea = a la id de la tabla usuarios cuando la id_blog de la tabla comentarios_blog sea = a 80. El primer paso es asignar una variable que contendrá la consulta, por ejemplo, $resultado, ésta variable se iguala a la consulta: tabla en la campo que relaciona camoque buscamos buscamos y tabla$resultado = “select usuarios.nombre,comentarios_blog.id_usuario from usuarios,comentarios_blog where comentarios_blog.id_blog=80 and comentarios_blog.id_usuario=usuarios.id”;$i=0 //Cuando la tabla contiene más de una fila (en éste caso del campo nombre) se iguala $i a 0, puede ser cualquier letra.Ahora empezamos a hacer la consulta, debemos asignarle una variable a ésta, por ejemplo $consulta y la igualamos a:$consulta=mysql_query ($resultado,$conexión);//$conexion es la variable que contiene la conexión a la base de datos que debe realizarse antes de la consultamysql_query: envía una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no hay ningún enlace abierto, la función intenta establecer uno.A continuación comenzamos a hacer la consulta para obtener el resultado:if(mysql_num_rows($consulta)!=0) //Comparamos que el número de filas sea distinto de 0(el nº de filas lo devuelve mysql_num_rows){while($fila=mysql_fetch_array($consulta)) //mysql_fetch_array extrae lo que contiene la consulta, lo igualamos con una variable {$nombre_usuario[$i]=$fila[‘nombre’]; $id_usuario[$i]=$fila[‘id_usuario’]; //Asignamos una variable que contenga $fila(resultado de mysql_fetch_array)de nombre(campo que queremos visualizar el contenido)echo $nombre_usuario[$i]; //Imprime el resultado. [$i], se utiliza cuando los resultados son variosecho $id_usuario[$i]; $i++;//Cierra el array}} El resultado de ésta consulta será nombre: jose pepe,id_usuario:24.