Array bidimensional en base de datos
Enviado por admin el Mar, 01/06/2004 - 19:26.
Clasificado en:
En la lista de correos de php, ante la pregunta
Estimados listeros, ¿Cómo podría guardar un array bidimensional en un mysql?
Se me ocurrió algo como:
Primero, crear una tabla con campos ARRAY_ID,FILA_ID,COL_ID,VALOR, con las tres primeras col como clave primaria
Entonces, guardas con
- foreach($aBi as $sRow=>$aCols) {
- foreach($aCols as $sCol=>$sValor) {
- $query="insert into arrays (array_id,fila_id,col_id,valor) VALUES ('$sIdArray','$sRow','$sCol','$sValor')";
- }
- }
para recuperar, nada más fácil que
- // supongo uso de AdoDb
- $rs=$db->getArray("SELECT * from arrays where array_id='$sId'");
- while($aTupla=$rs->fetchRow()) {
- $aBi[$aTupla['fila_id']][$aTupla['col_id']]=$aTupla['valor'];
- }
- 18258 lecturas

QUE ESTA BIEN
genial genial¬¬)
Esa solucion no es optima ya que esa tabla propuesta esta desnormalizada por tener grupos repetitivos. Ademas lo que interpreto es que lo que se quiere es guardar el array en un solo campo. Para ello deberias serializar con serialize() y recuperar con unserialize() el array y guardarlo como un string largo en un campo de la BD.
Tambien podrias usar notacion JSON para serializar la info.
SALUDOS!
Enviar un comentario nuevo