Проблема с обработкой XL листа и записью его в БД

Lemming

Новичок
Проблема с обработкой XL листа и записью его в БД

Привет!

У меня к Вам один вопрос.
Всё по порядку.

Я имею Excel лист следующей структуры.

_________________________________________
| Наименование | Описание товара | Цена |
|Евроспецодежда |
| Товар1 | описание | 100 |
| Товар2 | описание | 100 |
| Товар3 | описание | 100 |
| Товар4 | описание | 100 |
|Зашитная одежда|
| Товар1 | описание | 100 |
| Товар2 | описание | 100 |
| Товар3 | описание | 100 |
| Товар4 | описание | 100 |
|Медецинская одежда|
| Товар1 | описание | 100 |
| Товар2 | описание | 100 |
| Товар3 | описание | 100 |
| Товар4 | описание | 100 |
|Сапоги|
| Товар1 | описание | 100 |
| Товар2 | описание | 100 |
| Товар3 | описание | 100 |
| Товар4 | описание | 100 |

Проблемы экспорта даных из ексель листа не существует. Я умею испольлзовать Zakkis Excel Reader, работал с CSV

Проблема заклбчается в следующем ...

На моем сервере существует База данных goods. В ней занесена ифонрмация о товарах по двум разделам

id1 = Евроспепцодежда
id2 = Медецинская одежда

если посмотреть на Excel лист то там существует 2 лишних раздела "Зашитная одежда" и "Сапоги"

Как можно реализовать следующие действие. На сервер загружается полный XL лист, а в базу попадают только товары пренадлежащие 2 категориям(соответсвенно из примера Евроспецодежда и Медецинская одежда), причем каждый товар ljk;ty записываться в свою категорию.

Разбивать XL лист на листы нельзя, да и вообще с ним нельзя ничего делать так как выгрузка идет с 1С.

? Я тут подумал может работать не с Ексель листом а с базой 1С, только для меня этот вопрос совершено не знаком.

Пожалйста помогите найти решегие. Уже неделю маюсь над этим вопросом.
 

kvf77

Red Devil
Lemming

что мешает не обрабатывать ненужные тебе данные? не пойму я что-то
 

Lemming

Новичок
Автор оригинала: kvf77
Lemming

что мешает не обрабатывать ненужные тебе данные? не пойму я что-то
Да ни что не мешает. Я не знаю как это можно реализовать.

например Товары которые идут под разделом спец одежда.

Ну да я их начну забивать ... а как узнать что раздел Спецодежда уже закончился и начился другой раздел который мне не нужен.
 

Lemming

Новичок
Автор оригинала: Wicked
а как ты узнаешь, что начался раздел "Спецодежда" ?
В этом наверное и заключается проблема.
Я незнаю! Вы мне можите сказать это вообще реально сделать?
 

kvf77

Red Devil
Lemming

я не понимаю - вот как ты узнаешь, что сейчас идет товар из рубрики Защитная одежда? как-то же ты его в базу засовываешь? так почему у тебя проблема не засовывать его в базу, если он из другой рубрики? у тебя что-то не сходится в объяснении
 

Lemming

Новичок
Автор оригинала: kvf77
Lemming

я не понимаю - вот как ты узнаешь, что сейчас идет товар из рубрики Защитная одежда? как-то же ты его в базу засовываешь? так почему у тебя проблема не засовывать его в базу, если он из другой рубрики? у тебя что-то не сходится в объяснении
Все проблема решена. Мы используем CSV а потом используем простой скрипт



PHP:
<?

mysql_connect("localhost","root","");
mysql_select_db("complect");

$needs_part = array ("Евроспецодежда",
                     "Медицинская одежда",
                     "Обувь производства Heckel Securite",
                     "Утеплённая обувь",
                     "Резиновая обувь",
                     "Очки и щитки защитные");



for ($i=0;$i<count($need_part);$i++){
$fp = fopen ("price.csv","r");

while (($data = fgetcsv ($fp, 10000000, ";"))!=false) {

     if (implode('',$data)==$data[0]) {


         if ($data[0]==$needs_part[$i]) $flag = 1;
         if ($data[0]!=$needs_part[$i]) $flag = 0;
     }

         if(!empty($data[3])){
  if ($flag==1) {

              $p=$i+1;

              $query = ("SELECT * FROM `price` WHERE `cat_id` = '$p' AND `good_name` = '$data[3]'");
              $res = mysql_query($query);
              $n =  @mysql_num_rows($res);


              if ($n > 0) {
                      $query = "UPDATE `price` SET `good_price`='$data[18]' AND `good_price_nds`='$data[19]' WHERE `name`='$data[3]'";
                         mysql_query($query);
                      // если такой товар существует то обновляем его в базе
              }else{

                      $query = "INSERT INTO `price`(`good_id`,`cat_id`,`good_name`,`good_opis`,`good_price`,`good_price_nds`)
                                VALUES('','$p','$data[3]','$data[12]','$data[18]','$data[19]')";
                       mysql_query($query);
                      // если такой товар не существует добовляем его в базу
              }
               echo mysql_error()."<br>";
  }
  }
}
fclose ($fp);
}


?>
 
Сверху