ralphi: große DB Tabelle ergänzen (Machbarkeit)

Beitrag lesen

Hallo Leute,

ich möchte gerne eine Tabelle, einer ‘dicken’ DB bei Strato ergänzen.
Die DB (iploc) besteht aus 2 Tabellen. Wo in einer (Tabelle1) die IP-Adressbereiche stehen und in der Anderen die dazugehörige Länderkennung.

Ich benötige die Länderkennung für ein regionales Bestellsystem (zur Abholung), um Bots aus USA & Co fernzuhalten.

Jetzt möchte ich die Länderkennung mit in die Tabelle1 aufnehmen, um die Abfrage zu beschleunigen.

Mein Problem:
Mit SSH, benötige ich für ca. 500 Datensätze gut 15 min und wird dann gestoppt. D.h. ich müsste die Ausführung des Progs alle 15 min manuell neu anstoßen.
Bei 567.382 Datensätzen, hieße das 1.135 mal ausführen – geht gar nicht :-|

Jetzt hab ich versucht, den Prozess mit file_get_contents() , cron anzustoßen – macht er nicht :-(

Auf $data = file_get_contents("http://ipinfo.io/".$ip."/json");
Kann ich nicht zugreifen, weil die ausgehende IP der Stratoserver anscheinend von mehreren genutzt wird –> Limit erreicht.

Hat irgendjemand eine Idee?

Das Prog:

<?php  
error_reporting(E_ALL);  
include "config.php";  
echo date ("H:i:s")."\n";  
  
$startzeit = time();  
  
	$sql = "SELECT * FROM city2014 WHERE status = 0 ORDER BY locId ;";  
		$res = mysql_query( $sql);  
		$anz = mysql_num_rows($res);  
	$i=0;  
	while($row = mysql_fetch_array($res)) {  
		echo $i ." - ";  
  
			$sql = "SELECT * FROM block2014  WHERE locId = " . $row['locId'] . "  ;";  
			$res2 = mysql_query( $sql);  
			$anz = mysql_num_rows($res2);  
			$row2 = mysql_fetch_array($res2);  
				if ( strlen ($row2['country']) < 2 ) {  
  
					$sql = "UPDATE block2014 SET country = '" . $row['country'] . "' , city = '" . $row['city'] . "' WHERE locId = " . $row['locId'] . " ;";  
  
					mysql_query( $sql);  
					echo $sql . '<br>\n';  
				  
				}else{  
					echo $row['locId'] . ' schon vorhanden\n';  
				} // prüfen  
	  
	  
		$sql = "UPDATE city2014 SET status = 1 WHERE locId = " . $row['locId'] . " ;"; // als erledigt markieren  
		mysql_query( $sql);  
		$i++;  
		// wie lange brauch ich  
		$vergangen = (time() - $startzeit);  
		echo "xxx--".date ("H:i:s", $vergangen)."--xx--".$vergangen."--xxx";  
		  
  } // alle durch (schön wärs)  
  
echo "ende\n";  
exit;  
	  
?>

Viele Grüße aus LA

--
ralphi