Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Super Novato :P

Estas en el tema de Super Novato :P en el foro de Mysql en Foros del Web. Hola, quiero traducir algunos campos de mi base de datos, mediante un script en php ayudandome de Google API translate. En mi base de datos ...
  #1 (permalink)  
Antiguo 09/03/2010, 05:50
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 1 mes
Puntos: 0
Super Novato :P

Hola, quiero traducir algunos campos de mi base de datos, mediante un script en php ayudandome de Google API translate.

En mi base de datos tengo una tabla: POSTS, y muchos campos en ella, de los cuales solo quiero actualizar 3: TITULO, CONTENIDO, y RESUMEN, estan en una misma fila bajo un mismo ID.

Tengo problemas con mysql, no se como asignarle a una variable, el valor del campo de la base de datos, para luego llevarlo a al traductor, y tampoco como hacer el UPDATE para actualizar ese campo con el valor traducido.

La funcción de traducción funciona bien, la podeis encontrar http://www.codediesel.com/downloads/GoogleTranslate

Mi borrador es el siguiente:

Código PHP:
<?php
include('conectar.php'); 
require_once(
'googleTranslate.class.php');
$db conectar();
  
/* Initialize the class translate class */
/* translate(string, to_language, from_language) */
/* $gt->translate($titulo , "es", "en"); */
$gt = new GoogleTranslateWrapper();

/* quiero hacer un bucle,
un while ID de mi tabla llega al valor 2500, que es el 
ID del ultimo post*/

/* ESTO SERIA MI BORRADOR no tengo idea de MySQL y php */
$ID 0
while (
id 2500){

/* No se como asignarle a una variable el valor de un campo de mi tabla*/
      
$titulo_a_traducir SELECT titulo FROM posts WHERE ID='$ID';
                      
$titulo_traducido $gt->translate($titulo_a_traducir "es""en");
                      
delay 5s/* para dejar que google traduzaca */
                      
UPDATE titulo FROM posts WHERE ID='$ID' con $titulo_traducido;
                      
                     
      
$contenido_a_traducir SELECT contenido FROM posts WHERE ID='$ID';
                      
$contenido_traducido $gt->translate($contenido_a_traducir "es""en");
                      
delay 5s/* para dejar que google traduzaca */
                      
UPDATE contenido FROM posts WHERE ID='$ID' con $contenido_traducido;
                      
      
$resumen_a_traducir SELECT resumen FROM posts WHERE ID='$ID';
                      
$resumen_traducido $gt->translate($resumen_a_traducir "es""en");
                      
delay 5s/* para dejar que google traduzaca */
                      
UPDATE resumen FROM posts WHERE ID='$ID' con $resumen_traducido
                      
                      echo 
$ID;
       
/* ¿ hace falta Limpiar las variables: $titulo_a_traducir $titulo_traducido
                                $contenido_a_traducir $contenido_traducido
                                $resumen_a_traducir  $resumen_traducido ?*/
       
$ID $ID 1;
       }  
       
       echo 
TERMINADO;                                            
?>
conectar.php

Código PHP:

<?php
function conectar()
{
$base_de_datos "mi_db";
$db_usuario "root";
$db_password "contraseña";

if (!(
$link mysql_connect("localhost"$db_usuario$db_password)))
{
echo 
"Error conectando a la base de datos.";
exit();
}
if (!
mysql_select_db($base_de_datos$link))
{
echo 
"Error seleccionando la base de datos.";
exit();
}
return 
$link;

?>

Última edición por Squash; 09/03/2010 a las 07:45
  #2 (permalink)  
Antiguo 09/03/2010, 07:03
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Super Novato :P

Squash este foro es de base de datos no de php.

Si tienes problemas con bases de datos, replantea tu pregunta sin usar codigo php (No está permitido) o bien, plantea tu pregunta en el foro adecuado.

saludos :)
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 09/03/2010, 07:47
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Super Novato :P

Yo lo veo en el sitio adecuado.. mi duda era sobre mysql, porque el php ya lo tenia... lo puse en PHP para que se vea mejor.

Gracias por tu ayuda de todos modos.
  #4 (permalink)  
Antiguo 09/03/2010, 07:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Super Novato :P

En realidad tu problema es de PHP. En lo que un moderador te mueve al foro correpondiente, tu problema es más bien que no haz colocado tu consulta entre comillas y segundo no haz hecho una consulta a la base de datos porque no estas usando las funciones que tiene PHP sobre MySQL. Te sugiero que leas este manual para que te puedas ir desenvolviendo con las consultas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 10/03/2010, 03:44
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Super Novato :P

Hola de nuevo,

Ya lo tengo todo casi hecho, (leyendo los manuales:P) , pero me ha surgido otro problema y es que:

Cuando recibo el texto traducido de google, en mi navegador (con el "echo") lo veo corectamente me refiero a tildes, luego lo inserto en la base de datos, y alli aparecen un caracteres extraños reemplazando a los tildes.

Mi base de datos está en UTF-8, el Script y la Página del Navegador tb en UTF-8 y se ve bien, no se por que en la base de datos se guarda de otra forma. Luego SI puedo editar directamente la base de datos y se me accepta los tildes.

Alguna idea?

Gracias
  #6 (permalink)  
Antiguo 10/03/2010, 06:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Super Novato :P

Si, la misma que te ha dado abimaelrc: Postea tu pregunta en el Foro de PHP.
Tu problema no está en la base de datos, sino en la forma en que el PHP trata y envia los datos a la base. Pero ese tipo de problemas se resuelve en el PHP, no en la base, ya que tu mismo describes que si por codificación es, el charset de la base es correcto.

Postea tu pregunta en el Foro de PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: super
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 11:43.