
А на сайте первую, вторую и четвертую колонки надо превратить в таблицу и закачать в базу.
Структура таблицы:
$query = "CREATE TABLE registr_geo
(
id INT (11) NOT NULL AUTO_INCREMENT,
strana CHAR (10),
n INT (11),
PRIMARY KEY(id)
) COLLATE='utf8_general_ci'
ENGINE=InnoDB CHARACTER SET utf8";
mysql_query($query);
echo "<BR> Создана таблица registr_geo ";
echo mysql_errno()." 35 : ".mysql_error()."<BR>";
$query = "ALTER TABLE registr_geo ADD UNIQUE (strana)";
mysql_query($query);
echo mysql_errno()." 40 : ".mysql_error()."<BR>";
Запись делается вот таким кодом:
// Заполним данными таблицу распределения IP адресов по территориям registr_terr
mysql_query("TRUNCATE TABLE `registr_terr`");
$buff = file_get_contents("geo_files.txt");
$buff = str_replace (chr(10), "<br />", $buff);
$buff = trim ($buff);
$m_gos = explode("<br />", $buff);
for ($i = 0; $i < count($m_gos); $i++)
{
unset($m_det);
$m_det = explode(chr(9), $m_gos[$i]);
echo "<br />$i 0 - ". $m_det[0] . " | 1 - " . $m_det[1] . " | 2 - " . $m_det[2] . " | 3 - " . $m_det[3] . " | 4 - " . $m_det[4];
mysql_query("INSERT INTO registr_terr (`min`, `max`, `strana`)
VALUES
('$m_det[0]', '$m_det[1]', '$m_det[3]')");
echo mysql_errno()." 439 : ".mysql_error()."<BR>";
}
// Проверка полноты записи
unset($res);
unset($row);
$res = mysql_query("SELECT COUNT(id) AS cnt FROM registr_terr ");
$n_str = mysql_result($res, 0, 'cnt');
echo "<br />i $i = $n_str" ;
В конце сличается количество строк в исходной инфе и в созданной таблице.
И эти числа не совпадают!
В текстовом файле 219172 строк, а в таблице только 105374.
В процессе работы выводится сообщение "Duplicate entry '2147483647-2147483647' for key 'min'".

Нюанс в том, что вот этого числа 2147483647, порождающего проблему, в текстовом файле с заносимой информацией вообще нет! Оно каким-то образом порождается именно сервером!
Для контроля я добавил вывод заносимой информации в браузер. И в браузере тоже нет этого числа 2147483647. Как же тогда сервер пишет его в базу?
(А при работе на Денвере все исполняется верно, и этого числа 2147483647 в базе нет).
Хостер молчит - видимо, сам не знает.
Вот ссылка на скрипт http://fh7929mi.bget.ru/baza-ip-2.php