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

  • Автор темы Автор темы Lemming
  • Дата начала Дата начала

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С, только для меня этот вопрос совершено не знаком.

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

что мешает не обрабатывать ненужные тебе данные? не пойму я что-то
 
Автор оригинала: kvf77
Lemming

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

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

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

В этом наверное и заключается проблема.
Я незнаю! Вы мне можите сказать это вообще реально сделать?
 
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);
}


?>
 
Сверху