Sunteți pe pagina 1din 22

Funciones PHP y Mysql

Lic. David I. López Pérez

1
Acceso PHP a MYSQL

• Conectar con el servidor de bases


de datos
Pasos a • Seleccionar una base de datos

para • Enviar la instrucción SQL a la base


de datos
accesar. • Obtener y procesar los resultados
• Cerrar la conexión con el servidor
de bases de datos

Lic. David I. López Pérez 2


Funciones de accesos a las base de datos
Conectar con el servidor de
• mysqli_connect()
bases de datos:
Seleccionar una base de
• mysqli_select_db()
datos:
Enviar la instrucción SQL a la
• mysqli_query()
base de datos:
Obtener y procesar los • mysqli_num_rows() y
resultados: mysqli_fetch_array()
Cerrar la conexión con el
• mysqli_close()
servidor de bases de datos:

Lic. David I. López Pérez 3


Acceso de la base de datos Mysql

Conectar con el servidor de bases de datos:


mysqli_connect()

Devuelve un identificador de la conexión en caso de


éxito y false en caso contrario.
• Sintaxis:
• $conexion = mysqli_connect (servidor, username,
password);
• Ejemplo:
• $conexion = mysqli_connect (“localhost”, “root”, “”)
or die (“No se puede conectar con el servidor”);

Lic. David I. López Pérez 4


Acceso de la base de datos Mysql

Seleccionar una base de datos: mysqli_select_db()


• Devuelve true en caso de éxito y false en caso contrario

Sintaxis:
• mysqli_select_db (database);

Ejemplo:
• mysqli_select_db (“bdejemplo”) or die (“No se
puede seleccionar la base de datos”);

Lic. David I. López Pérez 5


Acceso de la base de datos Mysql

Enviar la instrucción SQL a la base de datos: mysqli_query()


Devuelve un identificador o true (dependiendo de la instrucción) si la instrucción se
ejecuta correctamente y false en caso contrario

Sintaxis:
$consulta = mysqli_query (instrucción, $conexion);

Ejemplo:
$consulta = mysqli_query (“select * from datosPersonales”,
$conexion)or die (“Fallo en la consulta”);

Lic. David I. López Pérez 6


Acceso de la base de datos Mysql

Obtener y procesar los resultados: mysqli_num_rows(),


mysqli_fetch_array()
• En el caso de que la instrucción enviada produzca unos resultados,
mysqli_query() devuelve las filas de la tabla afectadas por la instrucción
• mysqli_num_rows() devuelve el número de filas afectadas
• Para obtener las distintas filas del resultado se utiliza la función
mysqli_fetch_array(), que obtiene una fila del resultado en un array
asociativo cada vez que se invoca

Sintaxis:

• $nfilas = mysqli_num_rows ($consulta);


• $fila = mysqli_fetch_array ($consulta);

Lic. David I. López Pérez 7


Acceso de la base de datos Mysql

Obtención de las filas:

•$nfilas = mysqli_num_rows ($consulta);


if ($nfilas > 0)
{
for ($i=0; $i<$nfilas; $i++)
{
$fila = mysqli_fetch_array
($consulta);
}
}

Lic. David I. López Pérez 8


Acceso de la base de datos Mysql
•Para acceder a un campo
determinado de una fila se usa la
Obtener los resultados: siguiente sintaxis:

mysqli_num_rows(), •$fila[“nombre_campo”] // por


ser un array asociativo
mysqli_fetch_array() •$fila[$i] // $i=índice
del campo desde 0

•for ($i=0; $i<$nfilas; $i++)


{
$fila = mysqli_fetch_array
($consulta);
Ejemplo: print “Título: “ .
$fila[“titulo”];
print “Fecha: “ .
$fila[“fecha”];
}

Lic. David I. López Pérez 9


Acceso de la base de datos Mysql

Cerrar la conexión con el servidor de bases


de datos: mysqli_close()

•Sintaxis:
•mysqli_close ($conexion);

•Ejemplo
•mysqli_close ($conexion);
Lic. David I. López Pérez 10
Ejemplo

Salida de la consulta. (Listado de datos)

Lic. David I. López Pérez 11


Ejemplo Script BD en Mysql
Crear la base de datos
•CREATE DATABASE REGISTROS;

Acceder a la base de datos


•USE REGISTROS;

Creación de la tabla
•CREATE TABLE DATOSPERSONALES(
•ID INT AUTO_INCREMENT PRIMARY KEY,
•CEDULA VARCHAR(50),
•NOMBRE VARCHAR(150),
•APELLIDO VARCHAR(150),
•TELEFONO INT,
•OFICIO VARCHAR(100));

Inserción de los datos a la tabla.


•INSERT INTO DATOSPERSONALES VALUES (1,'001-291084-0015E’, 'DAVID','LOPEZ','83347100','ANALISTA');
•INSERT INTO DATOSPERSONALES VALUES (2,'001-151090-0113A’, 'PEDRO','BERMUDEZ','22481050','CONSTRUCTOR');

Lic. David I. López Pérez 12


Ejecución del Script BD en Mysql

Lic. David I. López Pérez 13


Consulta avanzada de tablas

• Mostrar los resultados de la consulta


divididos en bloques de un número
Planteamiento: determinado de elementos (por ejemplo,
de 5 en 5)

• Recuperar un número limitado de


elementos de la tabla
• Implementar un mecanismo de
Requisitos: navegación que permita avanzar al
siguiente o volver al anterior bloque de
elementos.

Lic. David I. López Pérez 14


Consulta avanzada de tablas

Para recuperar un número fijo de elementos de una tabla


se utiliza la opción LIMIT de la orden SELECT. Así, por
ejemplo,
SELECT * from SELECT * from
datosPersonales LIMIT datosPersonales LIMIT
0, 5 $comienzo, $num
• Recupera los 5 primeros • Recupera $num elementos a
elementos de la tabla. partir de la posición $comienzo

Lic. David I. López Pérez 15


Consulta avanzada de tablas

La variable $num tendrá un valor constante (en este caso 5), mientras que la variable $comienzo
se incrementará o decrementará en 5 unidades al pasar a la página siguiente o anterior Para ello
se pasará la variable como parámetro en el enlace asociado al botón correspondiente

Por ejemplo, el código para el botón siguiente será:

"<A HREF='" . $_SERVER['PHP_SELF'] . "?comienzo=" . ($comienzo + $num) .


"'>Siguiente</A>"

Habrá que comprobar previamente que el nuevo valor de comienzo es válido, es decir, que se
encuentra dentro de los límites de la tabla devuelta por la consulta.

Lic. David I. López Pérez 16


Consulta avanzada de tablas

• Mostrar los resultados de • Recuperar de una tabla


una consulta de los elementos que
manera que se puedan cumplan una
filtrar en función del determinada condición
valor de una • Permitir seleccionar un
determinada columna valor de entre los
de la tabla valores posibles de una
columna

Planteamiento: Requisitos:

Lic. David I. López Pérez 17


Consulta avanzada de tablas

Para recuperar los elementos de una tabla que cumplen una


condición se utiliza la opción WHERE de la orden SELECT.
Por ejemplo,
• SELECT * from datosPersonales WHERE Oficio=’Constructor’
• Recupera los datos del empleado cuyo oficio tiene el valor “Constructor”.
• SELECT * from datosPersonales WHERE oficio =’$oficio’
• Recupera los datos personales cuyo oficio tiene el valor dado por la variable
$oficio

La variable $oficio se obtendrá de un elemento SELECT

Lic. David I. López Pérez 18


Consulta avanzada de tablas

• Actualizar de forma automática los


resultados al seleccionar un nuevo valor
para la columna
Planteamiento:

• Obtener automáticamente los valores de


una columna de tipo enumerado a partir
de la tabla
Requisitos: • Utilizar código JavaScript para detectar
un cambio en la opción seleccionada de
un elemento de tipo SELECT

Lic. David I. López Pérez 19


Consulta avanzada de tablas
Usando JavaScript
•Función JavaScript que actualiza una página en función de la opción
seleccionada en el elemento SELECT de nombre ‘oficio’ del formulario
de nombre ‘selecciona’:
<SCRIPT LANGUAGE='JavaScript'>
function actualizaPagina ()
{
i = document.forms.selecciona.oficio.selectedIndex;
categoria = document.forms.selecciona.oficio.options[i].value;
window.location = ‘muestra_oficio.php?oficio=‘ +oficio;
}
</SCRIPT>

Lic. David I. López Pérez 20


Consulta avanzada de tablas
Usando JavaScript
•Para ejecutar la función JavaScript es preciso asociarla al elemento
SELECT a través del evento ONCHANGE, que se activa cuando se
modifica la opción seleccionada:

<SELECT NAME=‘oficio' ONCHANGE='actualizaPagina()'>

Lic. David I. López Pérez 21


Lic. David I. López Pérez 22

S-ar putea să vă placă și