Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2014, 11:11
tdcp
 
Fecha de Ingreso: febrero-2014
Ubicación: Madrid
Mensajes: 19
Antigüedad: 10 años, 2 meses
Puntos: 0
Extraer datos de otra web

Ante todo, gracias por este foro maravilloso que me saca de problemillas de vez en cuando. Soy totalmente autodidacta en esto de la programación y me formo a través de la información y documentación que hay en la web, por eso os pido paciencia y comprensión, si alguna de la cuestiones que planteo son de cajón.
Paso a explicar lo que me tiene de cabeza.
Intento extraer datos de una web para despues insertar los registros obtenidos a una BD mysql, para lo que estoy montando un script, cuyo código es éste:

<?php
require("phpsqlsearch_dbinfo.php");
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die("Not connected : " . mysql_error());
}

// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
mysql_query("SET NAMES utf8");
if (!$db_selected) {
die ("Can\'t use db : " . mysql_error());
}

$extrae = $_POST['url'];
$provincias = $_POST['county'];
$paises = $_POST['country'];
// Use internal libxml errors -- turn on in production, off for debugging
libxml_use_internal_errors(true);
// Createa a new DomDocument object
$dom = new DomDocument;
// Load the HTML
$dom->loadHTMLFile($extrae);
// Create a new XPath object
$xpath = new DomXPath($dom);
//Query all <td> nodes containing specified class name
$titulos = $xpath->query('//a[@class="url"]');
$telefonos = $xpath->query('//p[@class="tel"]');
$direcciones = $xpath->query('//span[@class="street-address"]');
$ciudades = $xpath->query('//a[@class="locality"]');
$lats = $xpath->query('//span[@class="latitude hidden"]');
$lngs = $xpath->query('//span[@class="longitude hidden"]');
// Set HTTP response header to text/html for debugging output
header('Content-type: text/html; charset=utf-8');
//Traverse the DOMNodeList object to output each DomNode's nodeValue
foreach ($titulos as $titulo) {
$name = ltrim($titulo->nodeValue);
echo $name."<br>";
}
foreach ($direcciones as $direccion) {
$address = $direccion->nodeValue;
echo $address."<br>";
}
foreach ($ciudades as $ciudad) {
$city = $ciudad->nodeValue;
echo $city." ".$provincias." ".$paises."<br>";
}
foreach ($telefonos as $telefono) {
$phone = $telefono->nodeValue;
echo $phone."<br>";
}
foreach ($lats as $lat) {
$latitud = $lat->nodeValue;
echo $latitud."<br>";
}
foreach ($lngs as $lng) {
$longitud = $lng->nodeValue;
echo $longitud."<br>";
}
$sqlins = "INSERT INTO markersprueba (name, address, city, county, country, phone, lat, lng, fecAlta) ".
"VALUES ('$name', '$address', '$city', '$provincias', '$paises', '$phone', '$latidud', '$longitud', CURDATE())";
$resultins = mysql_query($sqlins) or die("No se ha podido insertar el log".mysql_error());
?>

El único registro que me inserta es el último obtenido, el resto no los inserta. Se que no lo estoy haciendo bien, pero he probado todo lo que he visto por la red y no lo consigo.
Agradezco desde ya vuestra ayuda