Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/01/2003, 14:45
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

La solucion de Cluster sirve si en un solo registro tienes un campo para cada variable. Pero segun tu esquema de base de datos, en cada registro tienes un par "nombre variable" y "valor".

Una solucion seria usar las "variables variables", que resumiendo es usar una variable para asignar el nombre de una variable. En tu caso seria algo como:
Código PHP:
$result=mysql_query('Select des,valor from config");  //leemos todos los registros (variables)
while ($row=mysql_fetch_assoc($result))
{
  $nombre_var=$row['
des']; // leemos el nombre de la variable
  $$nombre_var=$row['
valor];  // creamos la variable

El campo 'des' solo puede contener valores que sean validos como nombre de variables. Despues de este codigo, si un registro tenia 'des'='web', puedes hacer tranquilamente $web.

Este metodo tiene un "problema". Debes estar pendiente de no crear en tus scripts variables con el mismo nombre que las 'variables' de la configuracion, porque sino se pisaran los valores. Esto se aprecia mas si estas usando un script de otra fuente o si una vez finalizado el script te ves en la necesidad de crear mas variables de configuracion.

Para solucionar este problema vienen en tu ayuda los arrays. La idea es que en lugar de crear una variable para cada variable que almacenas en la BD, simplemente metes ese valor en un array usando como indice 'des'. En tu caso algo como:
Código PHP:
$result=mysql_query('Select des,valor from config");  //leemos todos los registros (variables)
while ($row=mysql_fetch_assoc($result))
{
  $nombre_var=$row['
des']; // leemos el nombre de la variable
  $configuracion[$nombre_var]=$row['
valor];  // creamos la variable dentro del array

Asi, para un valor 'des'='web', accederiamos a su valor con $configuracion['web']. De esta forma tu script puede estar usando la variable $web para otras cosas, y ademas en tu codigo sabes con solo leerlo que estas accediendo al valor de una variable de configuracion.

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.