такая задачка как можно сночало создать бд, затем в это бд перенести csv файл причем по слову в каждую ячейку, тоесть есть файл csv в нем много столбцов и строк, но нужно заносить в бд не по столбцам а из каждого столбца и строки брать каждое слово которое допустим разделено пробелом и заносило это слово в отдельную яцейку
Не заниматься глупостями. Брать каждое слово и заносить в отдельную ячейку - это слишком абстрактно и непонятно. В РСУБД нет ячеек в понимании Excel и таблица в них это не разграфленый лист. Какая конкретно задача стоит?
подсчетать количество повтарений каждого слова в csv файле, сделал средствами только php выполнение скрипта занимает около часа, вот терь думаю как эт можно сделать средствами php и mysql
запихал по слову в яцейку(в кажестве разделителя пробел и точка с запятой) теперь другая проблема как подсчитать количество дубликатов в таблице? не удалить дубликаты а подсчитать, и вывести результаты в файл?
Бггг. Размер файла? Ты хочешь сказать что это у тебя работает около часа? PHP: <?php $maxLineWidth = 4096; $delimiter = ";"; $var = array(); if (($handle = fopen("test.csv", "r")) !== false) { while (($data = fgetcsv($handle, $maxLineWidth, $delimiter)) !== false) { $var += $data; } fclose($handle); print_r(array_count_values($var)); }
да около часа, в одной ячейке csv файла не одно слово поэтому нужно разбить по ; и по пробелу патом удалить от туда знаки левые и цифры что бы остались только слова и после этого искать уже дубликаты
все сделал приведу код может кому пригодится, он не совсем коректный но всеже работает: index.php : HTML: <html> <head> <title></title> </head> <body> <cnter> <form enctype="multipart/form-data" action="export.php" method="post"> Выберите файл для обработки: <input name="userfile" type="file" /> <input type="submit" value="Обработать" /> </form> </body> </html> export.php : <html> <head> <title></title> </head> <body> PHP: <?php $uploadfile =basename($_FILES['userfile']['name']); $file=$_FILES['userfile']['tmp_name']; set_time_limit (0); function bookin($content) { $content = strtr($content, "АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ", "абвгдеёжзийклмнорпстуфхцчшщъьыэюя"); return strtolower($content); } $conn = mysql_connect ("localhost", "root", "") or die ("Соединение не установлено!"); echo'<div ><h2>Соединение установлено!</h2></center><br>'; $ter="create database export;"; $result=mysql_query($ter); if(!$result) { echo'<div ><h2>БД "export" не создана, либо уже существует все последующие действия будут поизводится в данной БД!</h2></center><br>'; } else{ echo'<div ><h2>БД "export" создана!</h2></center><br>'; } if(mysql_select_db("export")) { echo '<div ><h2>к БД подключенно</h2></center><br>'; } else { echo "Ошибка подключения к БД: ".mysql_error(); } $qery = "DROP TABLE `export`"; $result = mysql_query($qery); if ($qery) echo '<div color="#FF0000"> <h2>Существующая таблица удалена</h2>'.'</center></div>'; $qery2 = "CREATE TABLE `export` (`slova` TEXT NOT NULL,`CNT` TEXT NOT NULL );"; $result = mysql_query($qery2); if ($qery2) echo '<div><h2>Новая таблица добавлена</h2></center></div>'; if(is_dir('C:\/news')!=TRUE) { mkdir("C:\/news"); } $m=fopen("C:\/news/news.csv","w"); $fd = fopen($file, "r"); set_time_limit (0); echo '<h3>Идет добовление данных ожидайте:</h3>'; while (($arr = fgetcsv($fd, 1024, ";")) !== FALSE) { foreach($arr as $v=>$c) { $t=$arr[$v]; $ar=explode(" ",$t); echo"<pre>"; foreach($ar as $p=>$o) { $sql = "INSERT INTO `export` ( `slova` ) VALUES ('$ar[$p]');"; $result = mysql_query($sql); } } } echo '<h2>ГОТОВО</h2><br>'; $ret="select slova, replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( slova,'1',''),'2',''),'3',''),'4',''),'5',''),'6',''),'7',''),'8',''),'9',''),'(',''),')',''),'_',''),'-',' '),'/',''),'+',''),'&',''),'=',''),'^',''),':',''),'#',''),'*',''),'®',''),'–',' '),',',''),'0',''),'.',''),'%',''),'`',''),'|',''),'@',''),' *',''),'!',''),'™',''),'||','') FROM export;"; $result=mysql_query($ret); while ($rowt = mysql_fetch_array($result,MYSQL_NUM)) { $art[]=$rowt[1]; } foreach($art as $t=>$p) { if(substr($art[$t],0,3)=="htt") { unset($art[$t]); } if(substr($art[$t],0,3)=="для") { unset($art[$t]); } if(substr($art[$t],0,3)=="до") { unset($art[$t]); } if(substr($art[$t],0,3)=="при") { unset($art[$t]); } if(substr($art[$t],0,3)=="на") { unset($art[$t]); } if(substr($art[$t],0,3)=="из") { unset($art[$t]); } if(substr($art[$t],0,3)=="по") { unset($art[$t]); }if(substr($art[$t],0,3)=="to") { unset($art[$t]); } if(substr($art[$t],0,3)=="не") { unset($art[$t]); } if(substr($art[$t],0,3)=="без") { unset($art[$t]); } if(substr($art[$t],0,3)=="in") { unset($art[$t]); } if(substr($art[$t],0,3)=="со") { unset($art[$t]); } if(substr($art[$t],0,3)=="с") { unset($art[$t]); } if(substr($art[$t],0,3)=="так") { unset($art[$t]); } if(substr($art[$t],0,3)=="от") { unset($art[$t]); } } foreach($art as $t=>$p) { if(strlen($art[$t])<2) { unset($art[$t]); } } foreach($art as $t=>$p) { $erty[]=bookin($art[$t]); } foreach($erty as $k=>$v) { if(empty($v)) { unset($erty[$k]); //удаление пустых строк } } $gf=array_count_values($erty); arsort($gf); foreach($gf as $t=>$p) { if($p<2) { unset($gf[$t]); } } echo'<h3>запись в файл "С:\news\news.csv"</h3><br>'; foreach($gf as $t=>$p) { fwrite($m,"$t".";"."$p"."\r\n"); //запись в файл $m } echo'<h1>Все действия выполнены</h1><br>'; print_r($row); fclose($fd); // закрытие csv файла fclose($m); // закрытие txt файла ?> </body> </html> не против услышать критику, и может кто посоветует лучшее решение