Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/07/2003, 13:22
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Bueno, ya te digo que las dos soluciones son buenas.

Pensando he encontrado otra opcion: un registro con un campo. El campo seria TEXT (el mas grande). Funcionaria partiendo de la idea de que todas las opciones las vas a menjar en PHP como un array. Es decir, tendras un array con los distintos valores de las opciones y sera ese array lo que leas y modifiques. La idea seria serialazar ese array y guardarlo en base64 para que no haya problemas con caracteres raros. Por ejemplo;
Código PHP:
<?php
$opciones
['Idioma']='Castellano';
$opciones['Fecha']=array('Formato'=>'%d-%m-%Y','GMT'=>1);
$opciones['Colores']=array('Color1'=>'0xff00ff','Color2'=>'0x0000ff','Color3'=>'0xf0f0ff');
$opciones['Numero']=1024;

//lo serializas (pasas a string)
$opciones_serializado=serialize($opciones);
//se codifica en base64
$opciones_base64=base64_encode($opciones_serializado);
// guardamos en la base de datos el valor
$sql="update opciones set opciones='$opciones_base64' where id=1';  // por ejemplo
?>
.
.
.
<?php
// si queremos recuperar el array de opciones
// supongo que en $row['opciones'] esta el campo
$opciones=unserialize(base64_decode($row['opciones']));
// ahora tienes en $opciones todas las opciones como en el array original
print_r($opciones);
?>
Este metodo es ideal de la muerte si quieres tener las opciones en un array con una estructura algo complicada (pesada de reconstruir campo a campo). Un inconveniente es que de esta forma estas obligado a leer y escribir todas las opciones juntas, es decir, si solo quieres usar un par de opciones, primero debes leer de BD todas las opciones y luego acceder al array. Y otro inconveniente es que de esta forma ocupa mas espacio. Al serializar el array se añade informacion de la estructura del array (haz un echo $opciones_serializado;) y despues con base64 se aumenta mas el tamaño.

Como todo en esto de la programacion, tienes multiples soluciones que funcionan, cada una con sus pros y sus contras. Debes analizar tu situacion y aplicar la que mas conveniente te parezca.

Saludos.

PD: Quien dice un array dice un objeto.
__________________
Josemi

Aprendiz de mucho, maestro de poco.