Foros del Web » Programando para Internet » PHP »

Problema al insertar parser en mysql

Estas en el tema de Problema al insertar parser en mysql en el foro de PHP en Foros del Web. Hola Estoy tratando de insertar todos los nombres y todas los links que extrae pero solo me inserta el primero, alguien sabria desirme por que ...
  #1 (permalink)  
Antiguo 10/04/2008, 21:29
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Problema al insertar parser en mysql

Hola

Estoy tratando de insertar todos los nombres y todas los links que extrae pero solo me inserta el primero, alguien sabria desirme por que ? o que tengo errado ? por que muestra la lista de nombres y links completa pero iserta la primera

Código PHP:
<?php
$db_host
="";
$db_user="";
$db_pass="";
$db_name="";
$link mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_name$link);

        
$url   "www.dominio.com";
        
$get file_get_contents($url);        


        
# link
        
$parser='|<td class="([^<]+)">([^<]+)</td>|is';
        if( 
preg_match_all($parser$get$title) )
                 for (
$j=0;$j<count($title[1]);$j++)
                     print 
$title[2][$j]."<br>";
                    
                    
                            
# nombre 
        
$parser='|<a href="([^<]+)" target="_blank">([^<]+)</a></td>|is';
        if( 
preg_match_all($parser$get$title) )
                 for (
$j=0;$j<count($title[1]);$j++)
                     print 
$title[1][$j]."<br>";


mysql_query("INSERT INTO contenido (name, link) VALUES ('".$title[2][$j]."', '".$title[1][$j]."')");

?>

tal ves tengo mal la sql no logro definirla

Código PHP:
CREATE TABLE `fuentes_cnn` (
  `
idint(11NOT NULL auto_increment,
  `
namevarchar(255NOT NULL default '',
  `
urlvarchar(100NOT NULL default '',
PRIMARY KEY  (`id`)
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=
saludos y gracias hace 1 dia estoy con esto espero pueda ayudarme
  #2 (permalink)  
Antiguo 10/04/2008, 21:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Problema al insertar parser en mysql

necesitas AGRUPAR tus bloques de sentencias... si despues de un while, if, for... etc no tiene llaves {} solo la primer sentencia se ejecuta, las demas son tratadas como si estuvieran fuera del bloque...

si quieres darle alcanze a tu sentencia de insercion, procura agruparla donde debe.... estudia!!
  #3 (permalink)  
Antiguo 10/04/2008, 21:47
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: Problema al insertar parser en mysql

Podrias darme un ejemplo que no logro comprender ?

Última edición por hawaiian050; 10/04/2008 a las 22:55
  #4 (permalink)  
Antiguo 10/04/2008, 22:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Problema al insertar parser en mysql

mira..


if (1<2)
print 'a';

print 'b';

siempre imprimira 'b'; sin importar la condicion del IF (ya ke no esta dentro del bloke)

pero si....

if (3>2)
{
print 'a';

print 'B';
}

de este otro modo... se imprimen cuantas sentencias dentro del bloke, solo si se cumple la condicion... mira debes hacer esto...



Código PHP:
<?php
$db_host
="";
$db_user="";
$db_pass="";
$db_name="";
$link mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_name$link);

        
$url   "www.dominio.com";
        
$get file_get_contents($url);        


        
# link
        
$parser='|<td class="([^<]+)">([^<]+)</td>|is';
        if( 
preg_match_all($parser$get$title) )
        {
                 for (
$j=0;$j<count($title[1]);$j++)
                 {
                   print 
$title[2][$j]."<br>";
                  }
         }           
                    
                            
# nombre 
        
$parser='|<a href="([^<]+)" target="_blank">([^<]+)</a></td>|is';
        if( 
preg_match_all($parser$get$title) )
{
                 for (
$j=0;$j<count($title[1]);$j++)
                 {
                     print 
$title[1][$j]."<br>";


mysql_query("INSERT INTO contenido (name, link) VALUES ('".$title[2][$j]."', '".$title[1][$j]."')");
            }
}
?>
haber si con eso me expliko...
  #5 (permalink)  
Antiguo 10/04/2008, 22:39
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: Problema al insertar parser en mysql

gracias enserio no comprendia pero es por mi no por vos

Última edición por hawaiian050; 10/04/2008 a las 22:55
  #6 (permalink)  
Antiguo 10/04/2008, 22:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Problema al insertar parser en mysql

una ULTIMA!!! no usen citar si no es necesario.... hasta abajo esta RESPUESTA RAPIDA
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:39.