Личная эффективность — энергетика как основа успеха. ч.04. Стратегический подход




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

23 Comments

  1. Child_Men2

    Тема стратегии очень интересная и правильная

    Вопрос такой:

    Как чередовать время на стратегию и развитие со временем на восстановление энергии (чтобы избежать информационных перегрузок)?

    В сутках 24 часа, из них 8 — на сон (в лучшем случае), остается 16. 20 % от 16 — 3 часа

    Выходит обычный человек потенциально ежедневно может тратить 3 часа на развитие, плюс еще не забываем про оперативную

    деятельность (конечно, она менее энергозатратная, но все же она есть)

    А если стратегическая цель требует получения достаточно большого количества знаний (теоретических и практических),

    получение которых зачастую связано с большими энергозатратами, то не исключены информационные перегрузки

    (другими словами, «каша в голове», в результате стресс, депрессия и т.п.)?

    Как избежать, какие практические методики существуют? Какие методики помогают Вам?

    Особенно, как мне кажется, вопрос актуален для людей, которые о стратегии либо раньше не задумывались, либо стали задумываться совсем недавно

    Reply
  2. Lapitskiy

    (1) Child_Men2, спасибо за ваш вопрос!

    Надо планировать не только развитие и работу, но и отдых. Для некоторых это становится открытием, но это факт!

    Reply
  3. Child_Men2

    Можете более подробнее рассказать про технику «100 вопросов себе». Это должны быть именно вопросы или цели?

    Reply
  4. nikitautkin

    Интересно в какую сторону вы планируете развиваться, потому что вопрос достаточно насущный и с ним вместе есть один такой нюанс, это лень, которая мешает саморазвитию, как бы от нее избавиться???

    Reply
  5. Lapitskiy

    (4) nikitautkin,

    лень, которая мешает саморазвитию

    Лень штука полезная, таким образом интуиция сигналит о неверных целях.

    Reply
  6. Lapitskiy

    (3) Child_Men2,

    100 вопросов себе

    Это именно вопросы. Цель — раскачать интуицию, остановить внутренний диалог и заблокировать на время критичность.

    Весь фокус в том, чтобы писать вопросы, не останавливаясь ни на секунду.

    Пока не наберется как минимум 100.

    Показывать их никому не надо, иначе «внутренний цензор» начнет выдавать только политкорректные вопросы.

    Просто лист бумаги, или файл, и — Вперёд, вопросы вопросы вопросы.

    Любые, самые глупые и постыдные.

    После того, как это будет готово, пересмотрите их.

    1. постарайтесь найти общее в вопросах, вокруг чего крутятся большинство вопросов?

    2. Посмотрите в конец списка, там обычно вопросы, которые были заблокированы «внутренним цензором», но как правило, это самое сокровенное, о чем давно мечталось.

    Reply
  7. Child_Men2

    (6)

    Спасибо, будем пробовать )

    Reply
  8. nikitautkin

    (5)

    вы правы, но все же, всё хорошо когда вмеру, а вот как избавиться от лени, когда ее много? =)

    Reply
  9. Abris9

    Спасибо, Алексей, за интересные статьи. От себя могу порекомендовать книгу Грег МакКеон Эссенциализм путь к простоте.

    Reply
  10. Lapitskiy

    (8) nikitautkin, обычно самые частые причины лени —

    1) «сшибка» мотивации (различные мотивы разрывают вас в разные стороны и поглощают всю энергию) — надо сесть, расписать, и упорядочить цели по плану.

    2) сексуальная неудовлетворенность (90%)

    Reply
  11. Lapitskiy

    (9) Abris9, спасибо, буду гуглить!

    Reply
  12. chuprina_as

    Спасибо за статью. Впечатлило.

    Reply
  13. elkapst

    Спасибо за статью. Много на эту тему думала. Много ответов и советов для себя нашла. Спасибо

    Reply
  14. trans.sidorenko

    Да, большое спасибо за статью! Думала, что уже ничего нового по этой теме не найду, но, оказалось, что есть ещё неизведанное

    Reply
  15. Lapitskiy

    (14) Спасибо что читаете!

    Reply
  16. Rovan

    Статья интересная, но !

    «Если у вас не определены стратегические цели, вы легко можете стать жертвой манипуляций.»

    Это важно !

    Очень часто часть стратегических и даже текущих целей (желаний) созданы у человека не его потребностями, а внешними убеждениями — т.е. как раз манипулированием. Например чтобы доказать родителям, что я уже взрослый…. чтобы не было стыдно перед друзьями… чтобы быть не как все или наоборот как все …чтобы удивить клиента… и так далее.

    В итоге часто бывает что потрачены силы, время и деньги, а результат не оправдал эмоциональных ожиданий

    (елочные игрушки вероятно оказались фальшивыми, т.к. не радуют).

    Я эту тему прорабатывал подробно — могу написать статью на 1 страницу если будет кому-то интересно.

    Reply
  17. Rovan

    (1)

    «Как чередовать время на стратегию и развитие со временем на восстановление энергии (чтобы избежать информационных перегрузок)?

    В сутках 24 часа, из них 8 — на сон (в лучшем случае), остается 16. 20 % от 16 — 3 часа »

    Мой опыт:

    человек — не машина и не может (и не надо заставлять) работать строго жестко по расписанию

    если есть возможность регулировать загрузку — значит лучше «чувствовать» что сейчас лучше подходит для организма в целом

    и для решения некой темы в частности.

    Например в 1й день уделить некой теме 0.5 часа, в другой день 2 часа, в 3й день спать всего 6 часов, 4й день усилить физическую нагрузку … и т.д.

    » не исключены информационные перегрузки (другими словами, «каша в голове», в результате стресс, депрессия и т.п.)? »

    Можно научится чувствовать инфо. перегрузку и сразу давать мозгу отдохнуть.

    Часто грамотный (умелый) отдых для аналитического блока мозга в течении 20-25 минут снова запускает работу в полную силу.

    И еще хорошее умение — «складывать» ненужную информацию в «архив», т.е. НЕ обращать пристального внимания и даже не думать вообще о ней пока вы решаете более важный вопрос (тем более не реагировать эмоционально).

    «Как избежать, какие практические методики существуют? Какие методики помогают Вам? »

    Существуют. Я ознакомился с десятком таких.

    Начать можно с понятий «контроль чувств и эмоций» и «жажда знаний».

    Reply
  18. Rovan

    (5) «Лень штука полезная, таким образом интуиция сигналит о неверных целях. »

    Согласен!

    Но бывает цель верная, но не своевременная.

    Значит можно отложить работу — например не хватает неких ресурсов (например знаний, денег или привлечь небольшую помощь).

    Либо есть более важный вопрос, после решения которого можно вернуться к данной теме.

    Обычно лень — это вообще отказ делать что-либо.

    А подсказка интуиции — это именно сигнал (сообщение), которое можно понять и прислушаться.

    Reply
  19. Lapitskiy

    (16) пишите, интересно

    Reply
  20. Lapitskiy

    (18) да, согласен

    Reply
  21. Rovan

    Основа работы в данном смысле называется в разных книгах по-разному.

    Мне больше понравился термин «борьба с эго» — он включат в себя сразу и борьбу со своей ленью и с трудоголизмом,

    борьбу со скромностью и с хвастовством, борьбу с дауншифтингом и с чрезмерными амбициями,

    с самопожертованием и агрессией, с альтруизмом и жадностью, со стремлением чрезмерно доказывать, и т.п.

    Важно уметь слушать и понимать других людей, свои знание, составляющие ситуаций.

    Т.н. «путь золотой средины» (всё хорошо в меру).

    Вместо «я должен » и «так надо» следует выйти на базу «я хочу», «я понимаю», «я распределяю силы», «я беру ответственность».

    Очень важно научится пользоваться максимально тем что уже есть в наличии, а не стремится постоянно улучшать

    и покупать новое. Т.е. НЕ страдать когда нет возможности купить новое либо деньги были потрачены на другую тему.

    Можно немного «понизить ритм жизни» и при этом успеть сделать наиболее важные дела, чем бежать как загнанная лошадь

    за иллюзорными мечтами.

    Reply
  22. Lapitskiy

    (21) да, «должен» и «надо» — хорошие слова, только когда в качестве субъекта выступаешь сам. Т.е. «должен себе», и «мне надо» 🙂

    Reply
  23. Rovan

    Чтобы «должен» и «надо» приводили к полезным результатам следует точно осознавать следующие аспекты:

    1. целесообразность (важна ли эта цель для меня лично либо мной кто-то манипулирует)

    2. возможности (достаточно ли у меня ресурсов — знаний, сил, внешней помощи для достижения…. не потеряю ли что-то более важное на пути к этому ?)

    3. актуальность (важно ли дать это именно сейчас — в этом месяце, сегодня, в эти 15-20 минут)

    4. последствия (что будет после — принесет ли это пользу или это разовая глупая причуда, за которой будет еще и еще…)

    5. защита (можно ли защитить результат, т.е. закрепить сделанное как устойчивый объект на продолжительное время)

    Например знания есть 1. фундаментальные, жизненные, профессиональные, разовые (но полезные)…. и есть 2. пустые и глупые (информационный хлам).

    Можете в % распределить свои знания сейчас на эти 2 группы ? какое соотношение ?

    Если 1я группа 60% и выше уже хорошо. Я стремлюсь чтобы было 90% и выше.

    Девиз «Знание — сила» имеет смысл только по 1й группе.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *