Ejemplo de función en PHP que obtiene el valor de un campo de una tabla en MySQL/MariaDB. El valor está en formato CSV (separado con comillas dobles y punto y coma), lo separa en valores en un array y ordena el array. La función filtra todos los registros de la tabla por un valor para obtener sólo un registro.
- Requisitos para realizar función en PHP que obtenga valor de tabla MySQL en formato CSV, lo separe y lo ordene.
- Función PHP para obtener valor de un registro de una tabla MySQL, separar CSV y ordenar.
Requisitos para realizar función en PHP que obtenga valor de tabla MySQL en formato CSV, lo separe y lo ordene
Necesitaremos disponer de un servidor de MySQL/MariaDB y de una función PHP de conexión al servidor de base de datos. Un ejemplo de función de conexión a base de datos MySQL/MariaDB en PHP:
1 |
$conexion = mysqli_connect("IP_Servidor:Puerto","Usuario","Contraseña", "Catálogo") or die ("No se pudo conectar a la base de datos."); |
En el ejemplo de conexión anterior cambiaremos:
- IP_Servidor: nombre DNS o dirección IP del servidor de MySQL/MariaDB.
- Puerto: número de puerto de conexión (por defecto el 3306).
- Usuario: nombre del usuario con permisos suficientes para hacer select en la tabla que necesitemos.
- Contraseña: contraseña del usuario anterior.
- Catálogo: nombre de la base de datos MySQL (catálogo) que contiene la tabla a la que haremos el select.
Para este ejemplo usaremos la siguiente tabla:
1 2 3 4 5 6 7 |
CREATE TABLE param ( codigo int(10) unsigned NOT NULL AUTO_INCREMENT, nombre varchar(150) DEFAULT NULL, valor mediumtext, PRIMARY KEY (codigo), UNIQUE KEY parametro_nombre (nombre) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; |
El campo «valor» de la tabla «param» contendrá cadenas con formato CSV, por ejemplo:
1 |
"Windows Server";"Linux Ubuntu";"MAC OS";"Linux Debian";"Oracle Linux";"Linux Red Hat";"Linux";"Otro" |
Lo que se pretende es realizar una función en PHP que obtenga ese valor en CSV, filtrado por el campo «nombre», separe los valores del CSV y los ordene. Esto nos servirá, por ejemplo, para mostrarlos en un desplegable.
Función PHP para obtener valor de un registro de una tabla MySQL, separar CSV y ordenar
A continuación mostramos el código fuente de la función «obtenerValorCSV» en PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Función para obtener los valores de la tabla param filtrado por nombre="SO", // separar los valores CSV y ordenar function obtenerValorCSV ($conexion) { $sql = "SELECT valor FROM param WHERE nombre = 'SO'"; $resultadoSQL = mysqli_query($conexion, $sql); //Obtenemos el valor del campo "valor" del primer registro (sólo debería obtenerse uno) $valorCSV = mysqli_fetch_row($resultadoSQL))[0]; //Separamos en un array los valores en formato CSV separados por punto y coma y comillas dobles $arrayCSV = str_getcsv($valorCSV, ";", '"'); //Ordenamos el array por orden alfabético sort($arrayCSV); //Devolvemos el array ordenado return $arrayCSV; } |
Ejemplo de uso de la función PHP anterior, donde mostraremos un desplegable (combobox) con los valores obtenidos de la función obtenerValorCSV, y seleccionaremos, por defecto, el valor «Windows Server»:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $conexion = mysqli_connect("IP_Servidor:Puerto","Usuario","Contraseña", "Catálogo") or die ("No se pudo conectar a la base de datos."); $listaSO = obtenerValorCSV($conexion); ?> <form> <select name="SistemaOperativo"> <?php foreach ($listaSO as $so): ?> <option value="<?php echo $so; ?>" <?php if ($so == "Windows Server") { echo "selected"; } ?>> <?php echo $so; ?> </option> <?php endforeach; ?> </select> </form> |