Hola gente, de nuevo yo por aqui... nunca les ha pasado que tienen una tabla en su BD, que contiene los datos de configuracion global de su sitio web en construccion.
Normalmente dicha tabla va algo asi:
configura_id | configura_nombre | configura_valor |
1 | prueba 1 | P1 HECHO |
2 | prueba 2 | P2 HECHO |
Pues bien el problema mas grande es que cuando estamos configurando no podemos hacer un:
Select * from ... where configura_id= 1;
o
Select * from ... where configura_nombre= 'prueba 1';
Bueno en realidad si se puede, pero no seria dinamico, ya que hay que hacer un select por cada elemento, o talvez se crea un select con variables, pero habria que definir un valor para las mismas variables en nuestro sitio, y que pasaria si nuestra tabla tubiera 80 registros???
Bueno la solucion a este problema es este script que he diseñado con este unico fin:
configura.php
Como una breve explicacion del codigo y su uso:
con require, unimos al script la conexion a la BD (No creo que haga falta mostrarlo).
Hago un select, pero solo las columnas que me interesa.
Con esa linea lo que hago es pedirle a mysql que recorra toda la tabla y me devuelva la cantidad en numeros(INT) de datos existentes.
$nConfig = mysql_num_rows ($consulta);
Validamos que existan datos
if ($nConfig > 0)
Nuestro gran amigo ( un Ciclo ), como podran notar el ciclo inicia en 0 y termina hasta... la cantidad de datos que hay en la tabla...
for ($i=0; $i<$nConfig; $i++)
Creamos un vector con $i(aumenta en cada vuelta del for) cantidad de campos con indice numerico, de 0 a ...
$verConfig = mysql_fetch_array($consulta);
$CargaConfig[$i] = $verConfig["configura_nombre"];
de esta forma tenemos que
$CargaConfig[0] => prueba 1
$CargaConfig[1] => prueba 2
Luego creo otro vector, para los valores. Pero en vez de asignarle un indice numerico, asigno los valores en el anterior vector
$CargaConfigVal[$CargaConfig[$i]] = $verConfig["configura_valor"];
de esta forma tenemos que prueba 1 => P1 HECHO prueba 2 => P2 HECHO PARA USARLO, solo debemos enlazar este script a la pagina, y donde quiere podemos llamar el valor de un campo solo con su nombre Ejemplo: echo $CargaConfigVal['prueba 2']; Se imprime solo P1 HECHO PD: Si tienen dudas sobre un material. Pregunten...
Mauri - 13/04/2009 13:27:33
Particularmente resolvería el problema obteniendo el valor, nombre e id de configuración y guardandolo de igual forma, dos renglones y lo tenés resulto.
De todas formas es verdad q algunas veces es necesario mapear la tabla completa a un array una forma es como lo explicaste vos y otra seria
Aunque para este caso necesita la extension mysqli y PHP v5.3.0.
Saludos
atroxBlack - 02/11/2010 19:50:41
Hola la vdd que buen aporte me agrado mucho ya que soy nuevo en esto de php, y busque por muchos foros y este fue lo mejor que encontre, Gracias