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

Форум MySQL

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

 

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

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

тема: Импорт, функции для работы со строками (ИЗВИНИТЕ,очень срочно надо)
 
 автор: psychomc   (26.03.2008 в 07:29)   письмо автору
 
 

имеется следующий программный код

<?php
  
// Осуществляем соединение с базой данных
  
require_once("../config.php");
  if(empty(
$_FILES['csv']['tmp_name']))
      
puterror("Ошибка при отправке csv-файла");
  if(!(
$fp fopen($_FILES['csv']['tmp_name'],"rb"))) 
      
puterror("Ошибка при открытии отправленного файла");
    
// Читаем содержимое файла
    
$buffer fread($fp,filesize($_FILES['csv']['tmp_name']));
    
// Закрываем файл
    
fclose($fp);
    
// Удаляем файл
    
unlink($_FILES['csv']['tmp_name']);
    
// Присваиваем по умолчанию 
    
$separator ";";
    
// Если передан параметр separator изменяем значение переменной $separator
    
$separator $_POST['separator'];
    
// Если имеются пустые позиции забиваем их прочерком -
 //   $buffer = str_replace($separator.$separator, $separator."-".$separator,$buffer);
  //  $buffer = str_replace("\n".$separator, "\n-".$separator,$buffer);
  //  $buffer = str_replace($separator."\n", $separator."-\n",$buffer);
    // Разбиваем файл по строкам, каждую из которых заносим
    // в отдельный элемент массива $strtmp
   
$tok strtok($buffer,"\n");
    while (
$tok)
    {
      
$tok strtok("\n");
      
$strtmp[] = $tok;
    }
    
// Начало формирования SQL-запроса на вставку данных из
    // csv-файла
    
$insert_query "insert into product values ";
    
// Разбиваем строку по отдельным словам, используя
    // разделитель $separator
    
foreach($strtmp as $value)
    {
      
// Если строка пуста - выходим из цикла. Пустые строки могут появится,
      // если в конце csv-файла находятся пустые строки.
      
if(empty($value)) break;
      
// Определяем район
      
switch(substr(strtolower(strtok($value,$separator)), 03))
      {
          case 
'Склад':
            
$status "sklad";
            break;
          case 
'Заказ':
            
$status "zakaz";
            break;
      }
 
      
$name strtok($separator);
     
$cenabez strtok($separator);
      
$cenaroz strtok($separator);
      
   
      
// Преобразуем прямые кавычки в обратные
     
$name str_replace("'","`",$name);
     
$status str_replace("'","`",$status);
     
$cenabez str_replace("'","`",$cenabez);
     
$cenaroz str_replace("'","`",$cenaroz);
 
// пришлось объявить переменные чтобы занести данные в таблицу ((
         
$name='asass';
   
$cenaroz=212;
   
$status=sklad;
// Формируем и выполняем SQL-запрос на добавление позиции


   
$insert_query .= "(NULL,'$name',$cenabez,$cenaroz,'$status','show',0,".$_POST['id_catalog']."),";
    }
    
// Из запроса $insert_query удаляем последнюю запятую
    
$insert_query substr($insert_query,0,strlen($insert_query)-1);
    
// Удаляем предыдущие записей
    
$query_delete "delete from product where id_catalog=".$_POST['id_catalog'];
    
mysql_query($query_delete);
    
// Выполняем SQL-запросы

if( mysql_query($insert_query))
    {
      echo 
"<HTML><HEAD>
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?id_parent="
.$_POST['id_catalog']."'>
            </HEAD></HTML>"
;
    }
    else
    {
      echo 
$insert_query;
      echo 
"<br>";
    }
?>


правильно работает только с полем $cenabeznal!да и то импортирует из фала в обратном порядке ((. Скажите пожалуйста что здесь не так и в какой последовательности и как нужно писать функции для работы со строками! Вот моя таблица

CREATE TABLE `product` (
  `id_product` int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  `cenabez` tinyint(4) NOT NULL default '0',
  `cenaroz` tinyint(4) NOT NULL default '0',
  `status` enum('sklad','zakaz') NOT NULL default 'sklad',
  `hide` enum('show','hide') NOT NULL default 'show',
  `pos` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id_product`)
) TYPE=MyISAM;


Заранее спасибо...

   
Rambler's Top100
вверх

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