PDA

Просмотр полной версии : Нуже скриптик PhP+MySql


Stern
05.04.2008, 16:16
Вообщем задача.....

Есть фаил с содержанием типа

- New -
- ляляляляля...
- ляляляляля...
- ляляляляля...
- ляляляляля...
- ляляляляля...ляляляляля...ля ляляляля...
ляляляляля...ляляляляля...ля ляляляля...
- ляляляляля...
- New -
ляляляляля...ляляляляля....
- ляляляляля...ляляляляля...ля ляляляля..ляляляляля...
ляляляляля...ляляляляля...ля ляляляля.....
- ляляляляля...ляляляляля...ля ляляляля...ляляляляля...
ляляляляля...ляляляляля...


Требуется этот фаил загнать в таблицу где имеется 1 столбец...и каждая строка должна содержать ТОЛЬКО 1 "блок"( от -new- до -new-)....и еще важное замечение, надо чтоб сохранилось форматирование...

Kaimi
05.04.2008, 16:50
<?
//Base
$sql_host = 'localhost';
$user_login = 'omg';
$password = 'omg';
$db_name = 'omg';
$db=mysql_connect($sql_host,$user_login,$password) ;
mysql_select_db($db_name, $db);
if(!$db) echo 'db error';
//

if(isset($_GET['install']))
{
mysql_query("
CREATE TABLE `data` (
`id` INT NOT NULL AUTO_INCREMENT ,
`text` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
);
",$db);
}

if(isset($_GET['start']))
{
$data = file('file.txt');
foreach($data as $line)
{
if(!preg_match('/- New -/',$line)) $string .= $line;
else if (strlen($string) != 0){mysql_query("INSERT INTO `data` (`text`) VALUES ('$string')",$db); $string ='';}
}
}
?>

?install - создание таблицы
?start - начало обработки файла file.txt

Stern
05.04.2008, 17:13
Кхм...почему-то не "пишет" в таблицу....((

Kaimi
05.04.2008, 17:16
А ты настройки своей бд вписал?
Кстати, скопируй скрипт ещё раз, там небольшая ошибка была.

Stern
05.04.2008, 17:22
Конечно вписал :D

Скопировал, тож самое....работает ток install... :)


зы. А то что фаил под 8 метроф это не че?)))


Попробывал маленький фаил тож самое...

Kaimi
05.04.2008, 17:29
Насчет размера файла set_time_limit(0);
У меня работает нормально, хотя можешь попробовать написать $result = mysql_query.....
А потом if (!$result) {die(mysql_error());}

Stern
05.04.2008, 17:43
Вообщем не пашет.... =(

Вот кусок кода..

if(isset($_GET['start']))
{
$data = file('anekdot.txt');
foreach($data as $line)
{
if(!preg_match('/- New -/',$line)) $string .= $line;
else if (strlen($string) != 0)
{
$result = mysql_query("INSERT INTO `anekdot` (`text`) VALUES ('$string')",$db);
$string ='';
}
}

Имена таблицы(и при установке) и фаила изменены....и одинаковые...

Kaimi
05.04.2008, 17:54
Сделай так и скажи не выдает ли ошибок

if(isset($_GET['start']))
{
$data = file('anekdot.txt');
foreach($data as $line)
{
if(!preg_match('/- New -/',$line)) $string .= $line;
else if (strlen($string) != 0)
{
$result = mysql_query("INSERT INTO `anekdot` (`text`) VALUES ('$string')",$db);
$string ='';
if (!$result) {die(mysql_error());}
}
}

Stern
05.04.2008, 18:19
Пустой экран, и в базе пустота..

Kaimi
05.04.2008, 19:30
Надеюсь ты пишешь script.php?start
Если да, то хз где проблема

Stern
05.04.2008, 23:54
Помогите плииз кто нить... =)

Buffalon
06.04.2008, 12:19
Зато работает))))
<?
//Buffalon
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'EUR';
$conn=mysql_connect($host,$user,$pass) ;
mysql_select_db($db);

$bla="CREATE TABLE `bla`
(
`id` int(3) NOT NULL auto_increment primary key,
`text` text NOT NULL
)";
mysql_query($bla);

$file='file.txt';
$open=fopen($file,r);
while($fp=fgets($open,'511'))
{
if(strpos($fp,'/- New -/') !==false)
{
while(true)
{
$fp=fgets($open,'511');
if(strpos($fp,'/- New -/') !==false)break;
$fp .="<br>\n";
$string .= $fp;
}
}
}
echo $string;//Показывает состояние
if(strlen($string)!=0)mysql_query("INSERT INTO `bla` (`text`) VALUES ('$string')");
?>

Stern
06.04.2008, 14:25
Ну что за *ля...ток таблица создается...и все....пусто :(

Stern
06.04.2008, 14:52
Глянул ща в логи упал :)


[client **.***.***.123] PHP Warning: set_time_limit(): Cannot set time limit in safe mode in /var/www/vhosts/***.ru/subdomains/**/httpdocs/test.php on line 3
[client **.***.***.123] PHP Notice: Use of undefined constant r - assumed 'r' in /var/www/vhosts/***.ru/subdomains/***/httpdocs/test.php on line 22
[client **.***.***.123] PHP Notice: Undefined variable: string in /var/www/vhosts/***.ru/subdomains/***/httpdocs/test.php on line 36
[client **.***.***.123] PHP Notice: Undefined variable: string in /var/www/vhosts/***.ru/subdomains/***/httpdocs/test.php on line 37


А вот содержимое фаила самого...мб кто подскажет чо править тут...=\

<?

set_time_limit(0);

//Base
$host = 'localhost';
$user = '***';
$pass = '***';
$db = '***';
$conn=mysql_connect($host,$user,$pass) ;
mysql_select_db($db);
//

$bla="CREATE TABLE `bla`
(
`id` int(3) NOT NULL auto_increment primary key,
`text` text NOT NULL
)";
mysql_query($bla);

$file='anekdot.txt';
$open=fopen($file,r);
while($fp=fgets($open,'511'))
{
if(strpos($fp,'/- New -/') !==false)
{
while(true)
{
$fp=fgets($open,'511');
if(strpos($fp,'/- New -/') !==false)break;
$fp .="<br>\n";
$string .= $fp;
}
}
}
echo $string;//Показывает состояние
if(strlen($string)!=0)mysql_query("INSERT INTO `bla` (`text`) VALUES ('$string')");
?>


Все строки соблюдены:)

Amoura
06.04.2008, 15:23
Глянул ща в логи упал :)



А вот содержимое фаила самого...мб кто подскажет чо править тут...=\

<?

set_time_limit(0);

//Base
$host = 'localhost';
$user = '***';
$pass = '***';
$db = '***';
$conn=mysql_connect($host,$user,$pass) ;
mysql_select_db($db);
//

$bla="CREATE TABLE `bla`
(
`id` int(3) NOT NULL auto_increment primary key,
`text` text NOT NULL
)";
mysql_query($bla);

$file='anekdot.txt';
$open=fopen($file,r);
while($fp=fgets($open,'511'))
{
if(strpos($fp,'/- New -/') !==false)
{
while(true)
{
$fp=fgets($open,'511');
if(strpos($fp,'/- New -/') !==false)break;
$fp .="<br>\n";
$string .= $fp;
}
}
}
echo $string;//Показывает состояние
if(strlen($string)!=0)mysql_query("INSERT INTO `bla` (`text`) VALUES ('$string')");
?>


Все строки соблюдены:)

В 22-ой строчке $open=fopen($file,r); r - в ковычки поставь $open=fopen($file,"r");

Stern
06.04.2008, 15:47
[client **.***.***.123] PHP Notice: Undefined variable: string in /var/www/vhosts/***.ru/subdomains/***/httpdocs/test.php on line 36
[client **.***.***.123] PHP Notice: Undefined variable: string in /var/www/vhosts/***.ru/subdomains/***/httpdocs/test.php on line 37

Осталось 2 ошибки...

если в этих строках меняю string на fp то ошибок нет, но в базе все-равно пусто...=\

Stern
06.04.2008, 22:16
Люди хелп (: :(

Buffalon
07.04.2008, 09:54
Мля(.. .А у тибя присутствубт строчки "/- New -/" В начле и в конце?НА самом деле хватит прикалываться... .Может быть у тибя прав нету на запись ... .Хотя бы id у тибя прибавляется?

Stern
07.04.2008, 15:13
http://narod.ru/disk/60058000/anekdot.txt - вот фаил который надо "забить" в БД...=)

зы. мб кто сделает сразу sql?

Stern
08.04.2008, 16:18
Люююдиии...heeeelp ^_-

Kaimi
08.04.2008, 16:53
ТС, ты гений, выложить пример с - New -, а потом выложить базу где - NEW -...
А потом вопросы почему скрипт не работает...

Лови свою базу...
http://rapidshare.com/files/105840087/anekdots.sql.gz

Stern
08.04.2008, 18:21
Спасибо огромное!!!!

зы. ну я же не на стока тупой чтоб поменять New на NEW...я это сделал первым делом....

Doom123
08.04.2008, 19:34
Т.к тема скрипта не раскрыта сделаю это я .... =)

<?php

set_time_limit(0);

//Base
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';
$conn = mysql_connect($host, $user, $pass);
mysql_select_db($db);
//

$bla = "CREATE TABLE `bla`
(
`id` int(3) NOT NULL auto_increment primary key,
`text` text NOT NULL
)";
mysql_query($bla);

$test = file_get_contents('a.txt');
$tes = explode('- NEW -', $test);

for ($i = 1; $i < count($tes); $i++)
{
mysql_query("INSERT INTO `bla` (`text`) VALUES ('$tes[$i]')");
}

echo '<h1>Готово</h1>';

?>

Stern
08.04.2008, 20:25
Видимо не судьба......:(

Вообщем sql не заливается, ругается на "пакет сайз" чет такое...

А скриптом вроде льет, но в базе все в ???????

NOmeR1
08.04.2008, 20:27
Это надо выполнить после коннекта с базой.
@mysql_query('SET NAMES cp1251');

Stern
08.04.2008, 20:41
ВСЕЕ.....всем спасибо....проблема решена :) скрипт в итоге вышел такой :)

<?php

set_time_limit(0);

//Base
$host = 'localhost';
$user = '****';
$pass = '****';
$db = '****';
$conn = mysql_connect($host, $user, $pass);
mysql_select_db($db);
@mysql_query('SET NAMES cp1251');
//

$bla = "CREATE TABLE `bla`
(
`id` int(3) NOT NULL auto_increment primary key,
`text` text NOT NULL
)";
mysql_query($bla);

$test = file_get_contents('anekdot.txt');
$tes = explode('- NEW -', $test);

for ($i = 1; $i < count($tes); $i++)
{
mysql_query("INSERT INTO `bla` (`text`) VALUES ('$tes[$i]')");
}

echo '<h1>Готово</h1>';

?>