Cargar combo desde BBDD con PHP PDO

15/Abr/2016 PHP , , , , Deja un comentario

A la hora de construir un formulario web es posible que los valores estén guardados en una base de datos. Es por ello que vamos a ver cómo podemos cargar combo desde BBDD con PHP PDO.

Lo primero será conectarnos a la base de datos utilizando un objeto PDO.

  1. $db = new PDO('mysql:host=localhost;dbname=lineadecodigo;charset=utf8mb4','usuario', 'password');

Vemos que para realizar la conexión a la base de datos, en este caso una base de datos MYSQL, necesitamos una cadena de conexión, el usuario y password.

Lo siguiente será preparar la consulta. En este caso vamos a acceder a la tabla paises para generar un combo con información de países. El método .query() nos permite ejecutar la consulta.

  1. $db->query('SELECT id,country FROM country')

Lo siguiente es recorrer el cursor mediante una estructura foreach. Cada vez que iteremos por una de las filas del cursor vamos a crear un estructura HTML de tipo option.

  1. foreach($db->query('SELECT id,country FROM country') as $row) {
  2. echo '<option value="'.$row['id'].'">'.$row['country'].'<option/>';
  3. }

Vemos que el campo ID que hace referencia al campo índice de la tabla lo ponemos como atributo value, mientras que el texto es el contenido del elemento option

Es important que antes y después de recorrer el cursor hayamos creado el objeto select de HTML para que se pueda dar la forma al combo.

El código para cargar combo desde BBDD con PHP PDO nos quedaría de la siguiente forma:

  1. echo '<h1>Paises</h1>';
  2.  
  3. echo '<select>';
  4. foreach($db->query('SELECT id,country FROM country') as $row) {
  5. echo '<option value="'.$row['id'].'">'.$row['country'].'<option/>';
  6. }
  7. echo '</select>';

Vídeos sobre PHP


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*