Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Из Exel в Базу
 
 автор: Dinya_1   (07.06.2011 в 18:56)   письмо автору
 
 

Здравствуте. Зкажите пожалуйсто кто знает.
Как можно перенести данные из Столбца Microsoft Exel в базу ?

Очень нужно.

  Ответить  
 
 автор: Dinya_1   (07.06.2011 в 19:01)   письмо автору
 
   для: Dinya_1   (07.06.2011 в 18:56)
 

Вот нашел вот здесь http://www.softtime.ru/info/csv.php

  Ответить  
 
 автор: Dinya_1   (07.06.2011 в 23:16)   письмо автору
 
   для: Dinya_1   (07.06.2011 в 19:01)
 

Не получается вставить полученный результат в переменную для последующей записи в базу

Exel

1000039
1001017
......
5770001


Код парсера:

<?
  $file 
$_POST['file'];
  
$csv_lines  file("1.csv");
  if(
is_array($csv_lines))
  {
    
//разбор csv
    
$cnt count($csv_lines);
    for(
$i 0$i $cnt$i++)
    {
      
$line $csv_lines[$i];
      
$line trim($line);
      
//указатель на то, что через цикл проходит первый символ столбца
      
$first_char true;
      
//номер столбца
      
$col_num 0;
      
$length strlen($line);
      for(
$b 0$b $length$b++)
      {
        
//переменная $skip_char определяет обрабатывать ли данный символ
        
if($skip_char != true)
        {
          
//определяет обрабатывать/не обрабатывать строку
          ///print $line[$b];
          
$process true;
          
//определяем маркер окончания столбца по первому символу
          
if($first_char == true)
          {
            if(
$line[$b] == '"')
            {
              
$terminator '";';
              
$process false;
            }
            else
              
$terminator ';';
            
$first_char false;
          }

          
//просматриваем парные кавычки, опредляем их природу
          
if($line[$b] == '"')
          {
            
$next_char $line[$b 1];
            
//удвоенные кавычки
            
if($next_char == '"')
              
$skip_char true;
            
//маркер конца столбца
            
elseif($next_char == ';')
            {
              if(
$terminator == '";')
              {
                
$first_char true;
                
$process false;
                
$skip_char true;
              }
            }
          }

          
//определяем природу точки с запятой
          
if($process == true)
          {
            if(
$line[$b] == ';')
            {
               if(
$terminator == ';')
               {

                  
$first_char true;
                  
$process false;
               }
            }
          }

          if(
$process == true)
            
$column .= $line[$b];

          if(
$b == ($length 1))
          {
            
$first_char true;
          }

          if(
$first_char == true)
          {

            
$values[$i][$col_num] = $column;
            
$column '';
            
$col_num++;
          }
        }
        else
          
$skip_char false;
      }
    }
  }
  
/* var_dump($values);*/


 
echo "<pre>"
  
print_r($values); 
  echo 
"</pre>";

?>



Результат вывода

Array
(
    [0] => Array
        (
            [0] => 1000039
        )

    [1] => Array
        (
            [0] => 1001017
        )

     ...........

[2350] => Array
        (
            [0] => 5770001
        )

)


Подскажите пожалуйста как вставить результат ( 1000039 ) в переменную для последующей вставки в базу в цикле

<?

echo "<pre>";  
  
print_r($values);  
  echo 
"</pre>";

while(
$res mysql_fetch_array($values))  
{
$result01 mysql_query ("INSERT LOW_PRIORITY INTO tabl (`title`) VALUES ($res')",$db);
  

?>

  Ответить  
 
 автор: Dinya_1   (08.06.2011 в 00:10)   письмо автору
 
   для: Dinya_1   (07.06.2011 в 23:16)
 

Вот нашел то что нужно, только почемуто в конце в таблице добавляет 30пустых строк.
Как можно убрать сее не удобство?

<?
$data 
File("1.csv"); 

for (
$i=0;$i<count($data);$i++) { 

$data_array explode(";"$data[$i]); 

echo 
"<tr>"

    for (
$f=0;$f<count($data_array);$f++) { 
     
    echo 
"<td><center>$data_array[$f]</td></center>"
    
$result01 mysql_query ("INSERT LOW_PRIORITY INTO tabl (`title`) VALUES ('$data_array[$f]')",$db);     

    } 

echo 
"</tr>"


?>

//Получается в таком виде

   .....
</td></center></tr><tr><td><center>9999901
</td></center></tr><tr><td><center>5770001
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr>


Помогите их убрать.. please

  Ответить  
 
 автор: cheops   (08.06.2011 в 08:41)   письмо автору
 
   для: Dinya_1   (08.06.2011 в 00:10)
 

А вы циклом пробегайте по значениям $data и проверяйте не являются ли они пустыми и вообще является ли $data_array массивом. В зависимости от этого принимайте решение выводить очередную строку или пропустить итерацию.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования