Almacenar array en base de datos MySQL y PHP

publicado por: Anonymous

Tengo una tabla de base de datos donde entre otras cosas necesito almacenar un dato para cada día del mes (que refleja los ingresos obtenidos ese día).

Todas las cantidades de todos los días del mes (31 días que son reiniciados al final del mes) necesito almacenarlas en una sola columna, y he pensado que la mejor forma de hacerlo es almacenando un Array que luego pueda devolver y usar sin ningún problema.

Mi pregunta es, ¿cómo puedo almacenar un Array de PHP en una base de datos? y ¿Qué hago para recuperarlo desde la base de datos de nuevo como otro Array de PHP?

La pregunta excluye cómo hacer el INSERT y el SELECT, tan solo necesito saber cómo transformar y recuperar el array.

solución

Puedes insertar los datos dentro de una columna normal, del tipo VARCHAR será suficiente si es una lista de números, o del tipo TEXT si fueran datos más grandes (quizá en ese caso habría que pensar en normalizar la tabla).

Luego, por programación puedes traer los datos y crear un array con explode.

Supongamos que esta es tu lista de valores:

# $row["valores"]=$mValues; #valores es tu columna de valores separados por coma
$mValues="12,8,-1,80,99,157,77,22";
$arrValues=explode(",",$mValues);

#Prueba
print_r($arrValues);

Salida de la prueba:

Array
(
    [0] => 12
    [1] => 8
    [2] => -1
    [3] => 80
    [4] => 99
    [5] => 157
    [6] => 77
    [7] => 22
)

Si por algún motivo necesitaras saber a qué día corresponde cada dato, por lo único que debes preocuparte es por crear la lista de valores debidamente ordenada, luego, para buscar tienes que restar 1 al valor del día que necesites, ya que, como se ve en la salida PHP crea los arrays indexando a partir de 0.

Digamos que necesitas el dato del día 5 del mes, ese dato está realmente en el índice 4 de array.

$dia=5;
echo $arrValues[$dia-1];

Salida:

99

That’s all folks!

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *