Foros del Web » Programando para Internet » PHP »

Definir palabra desde la base de datos.

Estas en el tema de Definir palabra desde la base de datos. en el foro de PHP en Foros del Web. Hola a Todos! Estoy con el siguiente problema, estoy haciendo una web la cual le estoy poniendo algunos datos dinamicos, entonces, me gustaria poner valores ...
  #1 (permalink)  
Antiguo 17/08/2011, 09:58
 
Fecha de Ingreso: mayo-2004
Mensajes: 102
Antigüedad: 20 años, 6 meses
Puntos: 5
Pregunta Definir palabra desde la base de datos.

Hola a Todos!
Estoy con el siguiente problema, estoy haciendo una web la cual le estoy poniendo algunos datos dinamicos, entonces, me gustaria poner valores en la base de dato por ejemplo:

_facilidad1
_facilidad2

etc, y luego en cada file de lenguage definir esa palabra ejemplo:
Lang_es.php:

define('_facilidad1','Cocina');
define('_facilidad2','baño');

He probado poner en la base de datos _facilidad1
Y despues en el bucle he probaod a quitar el "echo" y dejar solo $row[elcampodeladb];
Pero tampoco funciona, tal vez tenga que cambiar algo en la base de datos? tengo el campo como text.

Agradezco de antemano la ayuda que podais darme!
Un saludo a todos!
__________________
Bruno Quintana
  #2 (permalink)  
Antiguo 17/08/2011, 11:42
 
Fecha de Ingreso: noviembre-2010
Ubicación: Badajoz
Mensajes: 94
Antigüedad: 14 años
Puntos: 4
Respuesta: Definir palabra desde la base de datos.

vas a tener que poner por aquí el código que estás usando o tendremos que escribirlo nosotros de cero...
  #3 (permalink)  
Antiguo 18/08/2011, 04:18
 
Fecha de Ingreso: mayo-2004
Mensajes: 102
Antigüedad: 20 años, 6 meses
Puntos: 5
Pregunta Respuesta: Definir palabra desde la base de datos.

Hola,
Okk, disculpa no pense que sirviera el codigo, ya que pense que tal vez habria que cambiar el valor de la base de datos, pero bueno lo cito aqui abajo:

Utilizo este script para seleccionar el idioma:

Código PHP:
//define lenguaje
if(empty($sitelang)){ //primero preguntamos si la variable que va a contener el lenguage del visitante esta vacia
      
$sitelang getenv("HTTP_ACCEPT_LANGUAGE"); // si esta vacia sacamos el lenguage del visitante y lo ponemos en la variable $sitelang
      
$sitelang substr($sitelang02);
      }
switch(
$sitelang){ //ahora cargamos el archivo que contiene el idioma segun la varible que sacamos antes
          
case "es" //es = español 
             
include("lang/es.php"); //ahora cargamos el archivo que contiene las variables y sus palabras
          
break;
          case 
"en" //en = ingles 
              
include("lang/eng.php");
          break;
          case 
"it" //it = italiano 
             
include("lang/it.php");
          break;
          case 
"pt" //pt = portugues 
             
include("lang/pt.php");
          break;
             
          default :
             include(
"lang/eng.php"); //cargamos un idioma por defecto si no se encontro algun idioma 
             
break;
       }
//fin define lenguage 

Entonces por ejemplo incluye el file es.php
que tienes las siguientes cosas:
Código PHP:
define('_TITULOPAGE','Logeado');
define('_REGISTER','Registrarce');
define('_HELO','Hola');
define('_ACCEPT','Aceptar'); 

Hasta ahi todo perfecto, la cosa es que si yo modifico el codigo de cada pagina y pongo _COPYRIGHT, etc, puedo ir agregando cosas sin problemas, mientras que si por ejemplo un listado.

Pero el problema nace cuando, en vez de poner en el codigo, pongo en la base de datos, osea pongo en la sql, en un campo con propiedades TEXT agrego un registro y pongo por ejemplo: _facilidad_uno

Entonces luego en la pagina hago la consulta asi:


Código PHP:
//articulos
mysql_select_db($database_localhost$localhost);
$query_listar_art "SELECT * FROM articulos_db";
$listar_art mysql_query($query_listar_art$localhost) or die(mysql_error());
$row_listar_art mysql_fetch_assoc($listar_art);
$totalRows_listar_art mysql_num_rows($listar_art);



//aqui leo la definicion de la base de datos:
echo $row_listar_art ['nombre_del_campo_de_la_base_de_datos'];


    
mysql_free_result($listar_aret); 

Solo que cuando pone el dato dinamico me escribe siempre:

"_facilidad_uno" el archivo es.php no modifica lo que lee de la base de datos..

Muchas gracias por vuestro tiempo.
Un saludo!
__________________
Bruno Quintana
  #4 (permalink)  
Antiguo 18/08/2011, 04:54
 
Fecha de Ingreso: noviembre-2010
Ubicación: Badajoz
Mensajes: 94
Antigüedad: 14 años
Puntos: 4
Respuesta: Definir palabra desde la base de datos.

A ver, el contenido que muestras de es.php no está siendo recuperado de ninguna base de datos, sino del propio php mediante la definicion de cada constante.
Si quisieras declarar el valor de una constante recuperando el valor de la base de datos, seria así:

Código PHP:
define'_facilidad_uno'$row_listar_art ['nombre_del_campo_de_la_base_de_datos'] ); 
No sé si es ésto exactamente tu duda...
  #5 (permalink)  
Antiguo 18/08/2011, 05:01
 
Fecha de Ingreso: mayo-2004
Mensajes: 102
Antigüedad: 20 años, 6 meses
Puntos: 5
Respuesta: Definir palabra desde la base de datos.

Hola Crash,
Gracias pero lo que quiero hcer es alrevez, digamos:
Que la tabla en la base de datos contiene:
Nombre: Jose
Apellido: Perez
Profesion: _POLICIA

Entonces cuando voy a listar los registro de la base de datos en la web:
pongo

Código PHP:
echo $row_usuarios['Nombre'].$row_usuarios['Apellido'].$row_usuarios['Profesion'
Entonces en este caso, el nombre y el apellido de la persona sera' igual en todos los idiomas, mientras que la profecion sera:


es.php

define('_POLICIA','Policia');


eng.php

define('_POLICIA','Police');


it.php
define('_POLICIA','Polizia');


Gracias !
__________________
Bruno Quintana
  #6 (permalink)  
Antiguo 18/08/2011, 05:08
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Definir palabra desde la base de datos.

Creo que tu problema es que PHP está tomando lo que devuelve la base de datos (en este ejemplo _POLICIA) como una cadena, no como una constante de PHP, luego a la hora de imprimirla, lo hace como cadena de la base de datos, por eso se te imprime _POLICIA en vez de interpretarla como una variable y sustituirla por su valor.

Lo que no sé es cuál es la solución. Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #7 (permalink)  
Antiguo 19/08/2011, 04:06
 
Fecha de Ingreso: noviembre-2010
Ubicación: Badajoz
Mensajes: 94
Antigüedad: 14 años
Puntos: 4
Respuesta: Definir palabra desde la base de datos.

Cita:
Iniciado por vgonga1986 Ver Mensaje
Creo que tu problema es que PHP está tomando lo que devuelve la base de datos (en este ejemplo _POLICIA) como una cadena, no como una constante de PHP, luego a la hora de imprimirla, lo hace como cadena de la base de datos, por eso se te imprime _POLICIA en vez de interpretarla como una variable y sustituirla por su valor.

Lo que no sé es cuál es la solución. Un saludo.
uhm... en este caso, creo que eval() podría servirle para interpretar el string devuelto por la consulta...

Etiquetas: definir, palabra
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 20:56.