Foros del Web » Programando para Internet » PHP »

Enviar Arrays a mysql.

Estas en el tema de Enviar Arrays a mysql. en el foro de PHP en Foros del Web. Hola. Verán, tengo este código. Quiero hacer que al buscar películas en IMDB me regresé los datos de la película. HECHO. Ahora quiero que esos ...
  #1 (permalink)  
Antiguo 02/04/2012, 23:03
 
Fecha de Ingreso: abril-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Pregunta Enviar Arrays a mysql.

Hola.
Verán, tengo este código.
Quiero hacer que al buscar películas en IMDB me regresé los datos de la película. HECHO. Ahora quiero que esos datos, al dar clic en un botón, los envíe a una base de datos. ¿Cómo lo podría hacer?

Código PHP:
<?php

//Busqueda
$imdb = new Imdb();
$movieArray $imdb->getMovieInfoById($_POST["num"]);
echo 
'<table id="tabla" cellpadding="3" cellspacing="2" border="1" width="80%" align="center">';
foreach (
$movieArray as $key=>$value){
    
$value is_array($value)?implode("<br />"$value):$value;
    echo 
'<tr>';
    echo 
'<th align="left" valign="top">' strtoupper($key) . '</th><td>' $value '</td>';
    echo 
'</tr>';
    echo 
'</table>';
}


//Obtener datos

class Imdb
{  
    function 
getMovieInfoById($imdbId)
    {
        
$arr = array();
        
$imdbUrl "http://www.imdb.com/title/" trim($imdbId) . "/";
        
$html $this->geturl($imdbUrl);
        if(
stripos($html"<meta name=\"application-name\" content=\"IMDb\" />") !== false){
            
$arr $this->scrapMovieInfo($html);
            
$arr['imdb_url'] = $imdbUrl;
        } else {
            
$arr['error'] = "¡No se econtro en IMDb!";
        }
        return 
$arr;
    }

     function 
scrapMovieInfo($html)
    {

$arr = array();
        
$arr['titulo'] = trim($this->match('/<title>(IMDb \- )*(.*?) \(.*?<\/title>/ms'$html2));
     
$arr['year'] = trim($this->match('/<title>.*?\(.*?(\d{4}).*?\).*?<\/title>/ms'$html1));
        
$arr['rating'] = $this->match('/ratingValue">(\d.\d)</ms'$html1);
        
$arr['generos'] = array();
        foreach(
$this->match_all('/<a.*?>(.*?)<\/a>/ms'$this->match('/Genre.?:(.*?)(<\/div>|See more)/ms'$html1), 1) as $m)
            
array_push($arr['generos'], $m);
        
$arr['director'] = array();
        foreach(
$this->match_all('/<a.*?>(.*?)<\/a>/ms'$this->match('/Director.?:(.*?)(<\/div>|>.?and )/ms'$html1), 1) as $m)
            
array_push($arr['director'], $m);
        
$arr['cast'] = array();
        foreach(
$this->match_all('/<td class="name">(.*?)<\/td>/ms'$html1) as $m)
            
array_push($arr['cast'], trim(strip_tags($m)));
        
$arr['sinopsis'] = trim(strip_tags($this->match('/<p itemprop="description">(.*?)(<\/p>|<a)/ms'$html1)));
        
$arr['duracion'] = trim($this->match('/Runtime:<\/h4>.*?(\d+) min.*?<\/div>/ms'$html1));
        if(
$arr['duracion'] == ''$arr['duracion'] = trim($this->match('/infobar.*?(\d+) min.*?<\/div>/ms'$html1));
        
$arr['idioma'] = array();
        foreach(
$this->match_all('/<a.*?>(.*?)<\/a>/ms'$this->match('/Language.?:(.*?)(<\/div>|>.?and )/ms'$html1), 1) as $m)
            
array_push($arr['idioma'], trim($m));
       
$arr['pais'] = array();
        foreach(
$this->match_all('/<a.*?>(.*?)<\/a>/ms'$this->match('/Country:(.*?)(<\/div>|>.?and )/ms'$html1), 1) as $c)
            
array_push($arr['pais'], $c);
        return 
$arr;


    }

}

}
echo 
'<body>';
echo 
'<form method="post" action=".php" />';
echo 
'<input type="submit" values="TEST" name="boton">';
echo 
'</body>';
?>

El botón al final es para que al darle clic me agregue los difrerentes $arr a la base de datos.

Una prueba...

Código:
$insert ="INSERT INTO personas(Titulo,Año,Rating) VALUES ("$arr['titulo']","$arr['year']","$arr['rating']")";
	mysql_query($insert) OR die(mysql_error());
Es esta la forma correcta?

Hay alguna otra manera de que mis datos en los array vayan a mi base de datos?
  #2 (permalink)  
Antiguo 03/04/2012, 00:18
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Enviar Arrays a mysql.

No, esa no es la forma correcta, dáte una vuelta por http://www.forosdelweb.com/f18/como-...s-bien-588701/
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 03/04/2012, 02:52
 
Fecha de Ingreso: abril-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Respuesta: Enviar Arrays a mysql.

Ok, Gracias. Lo he cambiado a esto:
VALUES ($imdb->{$arr['titulo']}, $imdb->{$arr['year']}, $imdb->{$arr['rating']});

"Object of class Imdb could not be converted to string..."
es otro archivo php al que va cuando doy clic en el botón.

Tengo un .php para obtener los datos de la película, y quiero que se guarden para enviarlos a la base de datos... También necesito que se se agreguen generos y de estos hay varios. Añado sólo año, titulo y rating como prueba para ver si funciona.
No sé si lo estoy haciendo bien... He comenzado con php hace unos días sólo leyendo código...

Etiquetas: grabber, imdb
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 13:10.