Foros del Web » Programando para Internet » PHP »

Consejo, ayuda, how to xD

Estas en el tema de Consejo, ayuda, how to xD en el foro de PHP en Foros del Web. Bueno, no sabia como llamar a esta duda o lo que sea :b. Vamos a ver, mi 'problema' es que tengo una tabla en la ...
  #1 (permalink)  
Antiguo 29/01/2003, 01:42
 
Fecha de Ingreso: diciembre-2002
Mensajes: 59
Antigüedad: 21 años, 4 meses
Puntos: 0
Consejo, ayuda, how to xD

Bueno, no sabia como llamar a esta duda o lo que sea :b.

Vamos a ver, mi 'problema' es que tengo una tabla en la base datos, que es la de configuración general de la web, y lo que quiero hacer es declarar variables a partir de los que pongo ahí.

Ahora mismo, tengo todo puesto así (dejo solo como hago la consulta para declarar una varibale)
Código PHP:
$result mysql_query("SELECT * FROM config where des='web'");
$row mysql_fetch_row($result);
$nombreweb $row[1]; 
Y así seguiria hasta morirme casi... :b. Es decir, que esas tres lineas las uso TODAS para declarar cada variable.
Mi pregunta creo que es obvia, como puedo simplificar esto?

Gracias y perdonen mi poca imaginación :b.

Edito para aclarar unas cosa.
La tabla tienes dos columnas, una llamada 'des' y otra llamada 'valor'.
Es decir, es este ejemplo que he puesto:
des | valor
--------------------------------
web | forosdelweb.com
ncorto | FDW.com
logo | /img/logo.jpg

Ect ect...

Repito mi pregunta por si acaso :).

Con este ejemplo así puesto, como hago para que...
- $web="forosdelweb.com";
- $ncorto="FDW.com";
- $logo="http://www.$web/img/logo.jpg";

Gracias de nuevo y perdonen otra vez :b

Última edición por N0vatO; 29/01/2003 a las 01:49
  #2 (permalink)  
Antiguo 29/01/2003, 07:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si te entendí bien .. pretendes obtener los campos de un registro (o varios) que te arroja la consulta q haces ...

Código PHP:
$result mysql_query("SELECT * FROM config where des='web'");
$row mysql_fetch_assoc($result);
$web $row['web'];
$ncorto $row['ncorto];
$logo = $row['
logo]; 
Pero si esa consulta arroja mas registros deberias usar un bucle para recorrer el array q te entrega un mysql_fech_array()

Código PHP:
$result mysql_query("SELECT * FROM config where des='web'");

while (
$row mysql_fetch_assoc($result)){
$web $row['web'];
$ncorto $row['ncorto];
$logo = $row['
logo];

echo 
$web."<br>";
echo 
$ncorto."<br>";
echo 
$logo."<br><br>";

He sustituido mysql_fetch_row por assoc (podría haber sido tambien array ..) .. para poder usar indices asociativos y veas claro como se obtienen los campos de cada registro que obtienes de la consulta realizada ..

Un saludo,
  #3 (permalink)  
Antiguo 29/01/2003, 14:45
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:19.