Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

импорт из текстового файла в sql

55K
04 июля 2011 года
mieRz
6 / / 17.03.2010
Возникла проблема при написании скрипта:
Код:
<?php
$db['host']='localhost';
$db['user']='***';
$db['pass']='****';
$db['db']='****';
$table='products';
$maincat='1';
$visible_true='1';
$visible_false='0';
$dat = date("y-m-d H-i-s");
$conn=@mysql_connect($db['host'],$db['user'],$db['pass']) or die("Error db");
$db=@mysql_select_db($db['db']) or die("Error db");
$thumb=file("file.txt");

foreach($thumb as $key=>$val)
    {
     $ln = explode(";",$val);
     $ln[0] = strip_tags(trim($ln[0])); //наименование
     $ln[1] = strip_tags(trim($ln[1])); //код
     $ln[2] = strip_tags(trim($ln[2])); //розница
     $ln[3] = strip_tags(trim($ln[3])); //мелкотп
     $ln[4] = strip_tags(trim($ln[4])); //опт
     $ln[5] = strip_tags(trim($ln[5])); //гарантия
     $ln[6] = strip_tags(trim($ln[6])); //остаток
     $sql="SELECT * FROM `$table` WHERE `product_code`='$ln[1]'";
     $results=mysql_query($sql) or die ("<p>error sql ($sql)</p>");
     $arr=mysql_fetch_array($results);
            if ($arr['product_code'] == '')
        {
             mysql_query("INSERT INTO `$table` (name,categoryID,title,product_code,price,small_opt_price,opt_price,warranty,in_stock,enabled,date_added) VALUES ('".$ln[0]."','".$maincat."','".$ln[0]."','".$ln[1]."','".$ln[2]."','".$ln[3]."','".$ln[4]."','".$ln[5]."','".$ln[6]."','".$visible_true."','".$dat."')");
        }
        else
            {
        $sql=mysql_query("UPDATE `$table` SET `name`='$ln[0]', `title`='$ln[0]', `enabled`='$visible_true', `price`='$ln[2]', `small_opt_price`='$ln[3]', `opt_price`='$ln[4]', `warranty`='$ln[5]', `in_stock`='$ln[6]', `date_modified`='$dat' WHERE (`product_code`='$ln[1]')");
        }
}
?>


Не могу дописать чтоб если кода в файлике нету, но в базе позиция числиться то изменить поле enabled на 0. Писал условия но результата желаемого не получил.

Если я код из файлика удаляю то никаких изменений в базе нету, дата модификации стоит та которая была последний раз.

Кто может подсказать? Не могу понять какое условие нужно написать.
66K
05 июля 2011 года
onerror
45 / / 05.07.2011
Ну так у вас такая логика: делать что-то с sql-таблицей, если в текстовом файле есть запись. Если текстовых записей нет, никакие запросы для таблицы не выполняются. "Enabled = 0" можно только вручную назначить. Например, запросом в начале работы скрипта:

UPDATE `$table` SET `enabled`=0 //для всех строк!

И как-то вы очень смело делите строку по ;. Лучше, наверное, использовать функцию str_getcsv() - чтоб учитывать возможность разделителя внутри кавычек и возможность экранирования.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог