Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Нуже скриптик PhP+MySql (https://forum.antichat.xyz/showthread.php?t=66480)

Stern 05.04.2008 16:16

Нуже скриптик PhP+MySql
 
Вообщем задача.....

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

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

Kaimi 05.04.2008 16:50

PHP код:

<?
//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

Сделай так и скажи не выдает ли ошибок
PHP код:

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

Зато работает))))
PHP код:

<? 
//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
А вот содержимое фаила самого...мб кто подскажет чо править тут...=\
PHP код:

<? 

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

Цитата:

Сообщение от Stern
Глянул ща в логи упал :)



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

<? 

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 код:

<?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>';

?>


Время: 06:52