|
Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема
|
Импорт на тхт в БД ?
|
|
Автор |
Nebesen1 (stubborn) |
Публикувано | 20.12.05 12:22 |
|
Здравейте
Проблема е следния - имам текстов файл от който искам да импортна определени низове в различни полета в базата. Имам примерно ред който започва с "e-mail=" и стойността след равното да се записва примерно в полето "mail" в БД. Искам да попитам дали някой знае някакъв по-практичен начин за търсене на съответни низове и вкарването на информацията след тях, отколкото ръчното вкарване на информацията(става дума за доста информация). Много благодаря предварително и се надявам, че сте разбрали въпроса ми!
Just do it
| |
Тема
|
да започнем ...
[re: Nebesen1]
|
|
Автор |
Bълk (умора няма) |
Публикувано | 20.12.05 12:40 |
|
... какво си направил до тук по въпроса?
-----------------
живей днес, защото вчера няма да се върне, а утре може и да не дойде!
| |
Тема
|
Чесно, тоя начин "ръчно" не е начин :)
[re: Nebesen1]
|
|
Автор |
NikB (любопитен) |
Публикувано | 20.12.05 20:15 |
|
Чесно, тоя начин "ръчно" не е начин :)
И на въпроса "дали някой знае" ти отговарям най-изчерпанетлно:
Да, някой знае. Дори са повече от един.
Направи си съответствие между ключовите думи в текстовия файл и имената на полетата в таблицата.
Обходи си файла и си попълни полетата.
Е, може всеки път да извеждаш и списък с неоткритите ключови думи.
ПП
И да знаеш, в програмирането винаги има и по-добри идеи
| |
Тема
|
Re: да започнем ...
[re: Bълk]
|
|
Автор |
Nebesen1 (stubborn) |
Публикувано | 20.12.05 22:42 |
|
Моята логика :
отварям файла, прочитам съдържанието, търся даден низ, гледам на коя позиция е показателя, премествам с 1(на мен ми трябва стойността след "E-mail=" примерно), копирам низа от получената позиция до края на реда, запазвам го в променлива, инсърт в базата. Доста зле съм с работата с файловете и низове и съм написал съвсем малка част :
В отговор на:
<?php
@$fp=fopen("test.txt", "r");
if (!$fp)
{
echo 'Error reading';
exit;
}
while (!feof($fp))
{
$get=fgets($fp);
}
if (strstr($get, 'E-mail='))
{
$show=ftell($fp);
$show_next=$show+1;
substr($get, $show_next);
}
?>
Надявам се да дадете насока
Just do it
| |
|
Според мен, за да може някой да ти помогне покажи част от текстовият файл който искаш да вкараш в ДБ-то. Така като не знаем в какъв формат ти е файла няма как да ти момогнем, а и няма смисъл да гадаем
| |
|
Има ли изобщо смисъл това което съм написал ?
Така и не разбрах как се копира низа от дадена позиция до края на реда ??? Търсих в пхп.нет, но нищо не открих. Помагайте !
Just do it
| |
Тема
|
Re: да започнем ...
[re: Nebesen1]
|
|
Автор |
Borko (един от тълпата) |
Публикувано | 21.12.05 11:01 |
|
Ако искаш до края на реда, пробвай така
if ($str=strstr($get, 'E-mail='))
така $str ще съдържа всичко след 'E-mail=' до края на реда
| |
Тема
|
Re: да започнем ...
[re: Borko]
|
|
Автор |
Nebesen1 (stubborn) |
Публикувано | 21.12.05 11:15 |
|
Borko благодаря, пак е някакъв напредък, но се появяват следните 2 проблема:
1) $стр=хваща последния намерен низ, който съдържа "Е-маил=", а на мен ми трябват всички. Идея ?
2) $стр=присвоява низ, който започва с фразата "Е-маил=", това по-някакъв начин дали може да се отреже или филтрира?
Едит: 2) Фикснато :) , остана само да хвана ВСИЧКИ стойности, не само последната. Помагайте.
Just do it<P ID="edit"><FONT class="small"><EM>Редактирано от Nebesen1 на 21.12.05 11:17.</EM></FONT></P>Редактирано от Nebesen1 на 21.12.05 11:25.
| |
|
Ето какво съм написал засега...остава само да хвана всички стойности, не само последната :
В отговор на:
<?php
$db_name="db";
$db_host="localhost";
$db_user="user";
$db_password="pass";
$connection=@mysql_connect($db_host, $db_user, $db_password);
@mysql_select_db($db_name) or die("cannot connect to mysql database");
@$fp=fopen("test.txt", "r");
if (!$fp)
{
echo 'Error reading';
exit;
}
while (!feof($fp))
{
$get=fgets($fp);
}
if ($str=strstr($get, 'E-mail='))
{
$email_array=explode('E-mail=', $str);
echo $email_array[1];
$query="INSERT INTO table (mail) VALUES ('$email_array[1]')";
mysql_query($query) or die(mysql_error());
}
fclose($fp);
?>
Ако някой има идея, да казва
Just do it
| |
|
Regular expressions...
preg_match_all("/(?<=E\-mail\=).*$/", $get, $matches);
$matches[$i][0] би трябвало да ти върне emailа от ред $i...
There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
| |
|
Страници по тази тема: 1 | 2 | >> (покажи всички)
|
|
|