Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] web con tres idiomas

Estas en el tema de web con tres idiomas en el foro de PHP en Foros del Web. Buenas, Estoy trabajando en una web con tres o cuatro idomas. He estado mirando y hay varios modos de hacerlo, peo no se si lo ...
  #1 (permalink)  
Antiguo 24/11/2014, 11:00
 
Fecha de Ingreso: abril-2012
Mensajes: 124
Antigüedad: 12 años
Puntos: 3
web con tres idiomas

Buenas,

Estoy trabajando en una web con tres o cuatro idomas.
He estado mirando y hay varios modos de hacerlo, peo no se si lo hago correctamente.

Tal como lo tengo la tabla 'articulo' tiene el campo 'id_texto' que apunta a la tabla 'texto'
La tabla 'texto' además del campo 'id_texto' tiene 'id_idioma' y 'texto'. Guarda distintos valores para cada 'id_texto' y para cada idioma.

Una consulta simple seria así para codeigniter:

Código PHP:
Ver original
  1. $this->db->select('articulo.id_texto, texto.texto');
  2. $this->db->from('articulo');
  3. $this->db->join('texto', 'articulo.id_texto = texto.id_texto');
  4. $this->db->where("texto.idioma = $idioma");

Devuelve el id del artículo y el texto con el idioma correcto.

Mi duda es cómo podría hacerlo si la tabla también tiene los campos categoria y titulo, que también deben traducirse del mismo modo.

Funcionará si pongo eso?
Código PHP:
Ver original
  1. $this->db->select('articulo.id_texto, texto.texto AS titulo,  texto.texto AS categoria');
Como tengo que poner el JOIN y el WHERE? Un WHERE para cada JOIN?
Mejor si empiezo y organizo las tablas de modo distinto?
__________________
Mi web de programación en PHP en construcción, claro. Un dia de esos pongo algo.
  #2 (permalink)  
Antiguo 04/04/2023, 14:38
 
Fecha de Ingreso: abril-2012
Mensajes: 124
Antigüedad: 12 años
Puntos: 3
Respuesta: web con tres idiomas

Vaya! que grácia!
Nueve años y nadie respondió!

En que estaba yo trabajando entonces? Seguramente era la web de mi (entonces futura) novia (y ahora ex-novia, como pasa el tiempo!).

Me respondo a mi mismo, con el tiemp he aprendido mucho:
La web está con codeiniter, o sea que sería algo así:

Código PHP:
Ver original
  1. $this->db->select('articulo.id_texto, articulo.id_titulo, texto_1.texto AS texto, texto_2.texto AS titulo');
  2.     $this->db->from('articulo');
  3.     $this->db->join('texto AS texto_1', 'articulo.id_texto = texto_1.id_texto AND texto_1.idioma = $idioma');
  4.     $this->db->join('texto AS texto_2', 'articulo.id_titulo = texto_2.id_texto AND texto_2.idioma = $idioma');

Fácil!!!
__________________
Mi web de programación en PHP en construcción, claro. Un dia de esos pongo algo.

Etiquetas: idiomas, select, tabla, tres
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 09:32.