|
|
|
| Извените меня но я хочу справедливости)))....вот есть БД в txt формате где описано следующее
3653754368 3653754623 217.199.222.0 - 217.199.222.255 RU Москва Москва Центральный ASSIGNED PA
3653754624 3653754879 217.199.223.0 - 217.199.223.255 RU Москва Москва Центральный ASSIGNED PA
3653758976 3653760255 217.199.240.0 - 217.199.244.255 RU Екатеринбург Свердловская область Уральский ASSIGNED PA
3653759488 3653759503 217.199.242.0 - 217.199.242.15 RU Екатеринбург Свердловская область Уральский ASSIGNED PA
|
Есть ли пример скрипта, который бы это кидал в Mysql)))...оч-оч-оч-очень! нужно (просто другие способы определениия Российских Городов И областей сегодня ночью потерпели фиаско)))).. | |
|
|
|
|
|
|
|
для: Justin Marty
(17.07.2008 в 10:05)
| | Обычным csv парсером пропарси, сформировав SQL запрос | |
|
|
|
|
|
|
|
для: mihdan
(17.07.2008 в 11:21)
| |
<?
$list = file_get_contents("text.txt");
$list = explode("\n", $list);
foreach ($list as $param){
$param = explode(" ", $param);
echo "$param[0]-$param[1]-$param[2]-$param[3]-$param[4]-$param[5]-$param[6]-$param[7]\n<br />";
mysql_query("INSERT INTO table (param1, param2, param3, param4, param5, param6, param7) VALUES ('$param[0]', '$param[1]', '$param[2]', '$param[3]', '$param[5]', '$param[6]', '$param[7]')");
}
?>
|
| |
|
|
|
|
|
|
|
для: dirol
(17.07.2008 в 11:22)
| | Лучше сначала сформировать SQL а потом его выполнить, но не гонять енто в цикле, а в основном правильно | |
|
|
|
|
|
|
|
для: mihdan
(17.07.2008 в 11:24)
| | ...а как быть с таким делом как область? ведь например СВЕРДЛОВСКАЯ ОБЛАСТЬ тоже пробелом разделена?? | |
|
|
|
|
|
|
|
для: Justin Marty
(17.07.2008 в 11:32)
| | Для разбиения строки есть функция $ex=EXPLODE(1,2)
Где 1 — разделитель( например пробел или какой другой символ), а 2 — это сктрока которую нужно разбить.
в итоге в переменной $ex лежит массив разбитой строки, использовать так:
$ex[0] — первый разбитый участок
$ex[1] — второй и т.д. | |
|
|
|
|
|
|
|
для: Justin Marty
(17.07.2008 в 11:32)
| | Я так понял explode по табуляции делается, а не по пробелу! | |
|
|
|
|
|
|
|
для: Justin Marty
(17.07.2008 в 10:05)
| | Никакой csv парсер не нужен.
Читай файл построчно, используй explode.
Примерно так:
<?php
// Построчное чтение файла
$handle = fopen ("/tmp/inputfile.txt", "r");
while (!feof ($handle)) {
$str = fgets($handle, 4096); // строка 3653754368 3653754623 217.199.222.0 - 217.199.222.255 RU Москва Москва Центральный ASSIGNED PA
$ex = explode(" ",$str);
$first=$ex[0]; // 3653754368
$second=$ex[1]; // 3653754623
$third=$ex[2]; // 217.199.222.0 - 217.199.222.255
$four=$ex[3]; // RU
$five=$ex[4]; // Москва
$six=$ex[5]; // Москва
$seven=$ex[6]; // Центральный
$eight=$ex[7]; // ASSIGNED PA
$query="INSERT INTO table('one','two','three','four','five','six','seven','eight') VALUES('".$first."','".$second."','".$third."','".$four."','".$five."','".$six."','".$seven."','".$eight."')";
if(mysql_query($query)){echo "Успешно добавлено!<br>";}else{"Ошибка — ".mysql_error();}
}
fclose ($handle);
?>
|
| |
|
|
|
|
|
|
|
для: Antohins
(17.07.2008 в 11:33)
| | Лучше сначала сформировать SQL а потом его выполнить, но не гонять енто в цикле, а в основном тоже самое, что и Dirol написал | |
|
|
|
|
|
|
|
для: Antohins
(17.07.2008 в 11:33)
| | Уважаемый, Antohins, а то что в шестом поле может быть значение например "Свердловская область" или 'Республика Башкиртостан"....ну вообщем слова такие как "область" "республика" "край" это не повлияет на правильность создаваемой таблицы? (ведь такие слова тоже разделены пробелом) | |
|
|
|
|
|
|
|
для: Justin Marty
(17.07.2008 в 11:49)
| | Я так понял explode по табуляции делается, а не по пробелу! | |
|
|
|
|
|
|
|
для: mihdan
(17.07.2008 в 12:09)
| | ну если так, то я думаю проблем не должно быть.......наверно)) | |
|
|
|
|
|
|
|
для: mihdan
(17.07.2008 в 12:09)
| | Кстати вы правы.
Код табуляции — 	
Скорее всего придется по этому символу делить строку. | |
|
|
|
|
|
|
|
для: Justin Marty
(17.07.2008 в 11:49)
| | Если вас устроит то, что в таблице будет выражение типа «Свердловская область» и «Республика Башкиртостан», то конечно проблем не будет. Главное — сделайте поле типа varchar (либо text) | |
|
|
|
|
|
|
|
для: Antohins
(17.07.2008 в 13:36)
| | Вроде все здорово...но не задача заполнил так:
one two three four five six seven eight id
1040547840 0 1
1040547856 0 2
1040547872 0 3
|
При кодинге:
<?php
INCLUDE("/home/xxxxxx/public_html/xxxxx/xxxxxx/connect.php");
// Построчное чтение файла
$handle = fopen ("/home/xxxxx/public_html/xxxxxx/index/IP.txt", "r");
if(!$handle){echo 'No';}
while (!feof ($handle)) {
$str = fgets($handle, 4096); // строка 3653754368 3653754623 217.199.222.0 - 217.199.222.255 RU Москва Москва Центральный ASSIGNED PA
$ex = explode("	",$str);
$first=$ex[0]; // 3653754368
$second=$ex[1]; // 3653754623
$third=$ex[2]; // 217.199.222.0 - 217.199.222.255
$four=$ex[3]; // RU
$five=$ex[4]; // Москва
$six=$ex[5]; // Москва
$seven=$ex[6]; // Центральный
$eight=$ex[7]; // ASSIGNED PA
$query="INSERT INTO ip VALUES('".$first."','".$second."','".$third."','".$four."','".$five."','".$six."','".$seven."','".$eight."','')";
if(mysql_query($query)){echo "Успешно добавлено!<br>";}else{"Ошибка — ".mysql_error();}
}
fclose ($handle);
?>
|
в чем дело?....плиз)) | |
|
|
|
|
4.7 Кб |
|
|
для: Justin Marty
(17.07.2008 в 14:35)
| | Вот я прикрепил исходный файл(правда фрагмент) с которым работаю. Если необходима могу залить полностью, но он довольно много весит. | |
|
|
|
|
472.8 Кб |
|
|
для: Justin Marty
(17.07.2008 в 14:49)
| | И вот что получил (таблица) Тоже прикреплина.
PS подскажите, пожалуйста где не точность? | |
|
|
|
|
|
|
|
для: Justin Marty
(17.07.2008 в 14:49)
| | Я вот импортировал Ваш фрагмент в таблицу с помощью phpMyAdmin безо всякого скрипта.
Предварительно убрав первую пустую строку, которую Вы в этот фрагмент зачем-то засунули. Видимо, чтобы скучно никому не было.
Впрочем, если Вам нужно именно скриптом, строку $ex = explode("	",$str); исправьте следующим образом.
$ex = explode("\t", $str);
|
| |
|
|
|
|
|
|
|
для: Trianon
(17.07.2008 в 15:37)
| | Без скрипта? В принципе мне не принципиально через что производить импорт... Скажите пожалуйста, какие параметры вы выставляли при импорте? | |
|
|
|
|
|
|
|
для: Justin marty
(18.07.2008 в 11:55)
| | Те параметры что трогал:
кодировка: cp1251
тип: CSV
разделитель полей \t
список имен полей: one,two,three и т.д. | |
|
|
|