Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/10/2015, 17:38
Avatar de pateketrueke
pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Tabla PHP multilenguaje MYSQL

El error más grave que cometes es querer realizar una consulta por cada texto que uses, mal ahí.

Lo correcto sería inicializar sólo una ves al inicio de toda tu aplicación todas las cadenas de texto, porque vamos, no creo que cambie de un momento a otro.

Si pudieras centralizar todo en una función reutilizable sería lo mejor:
Código PHP:
Ver original
  1. function lang($key, $base) {
  2.   static $cached;
  3.  
  4.   if (!is_array($cached)) {
  5.     // no hay nada en $cached así que inicializamos todo
  6.     $sql = "SELECT * FROM language_strings";
  7.     $res = mysql_query($sql);
  8.     $cached = [];
  9.  
  10.     while ($row = mysql_fetch_object($res)) {
  11.       // creamos un registro en $cached con cada palabra y variante
  12.       $cached[$row->texto] = [
  13.         'es' => $row->texto_es,
  14.         'en' => $row->texto_en,
  15.       ];
  16.     }
  17.   }
  18.  
  19.   // usamos el caché en lugar de hacer una consulta nueva
  20.   return $cached[$key][$base];
  21. }
  22.  
  23. // uso
  24. echo lang('usuarios', 'es'); // usuarios
  25. echo lang('usuarios', 'en'); // users

Bueno, a mi se me ocurre algo así.

¿Se entiende la idea?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.