Пишем данные в SQL макросом <PHP_SCRIPT> для версии X

Тема в разделе "Импорт CSV", создана пользователем Kreol, 10 май 2014.

  1. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Симпатии:
    3.485
    Здравствуйте.

    meta_id 100% должен храниться в какой-то таблице базы данных и "добыть" его должно быть можно запросом к этой таблице.

    А следующим запросом уже UPDATE.

    С уважением к вам, Сергей...
     
  2. Казюлябр

    Казюлябр New Member Пользователи

    Регистрация:
    1 ноя 2013
    Сообщения:
    6
    Симпатии:
    0
    Вобщем у меня есть следующая конструкция

    Артикул поставщика|Мой артикул

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

    У меня нет списка замен где бы заменялся их артикул на мой meta_id и я даже примерно не представляю как его создать, кроме как вручную, а товаров очень дофига
     
  3. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Симпатии:
    3.485
    В системе помощи есть пример использования UPDATE-запроса к БД Ссылки недоступны для гостей

    Также обратите внимание на экранирование специальных символов (mysql_real_escape_string).

    Также там показано, как выводить ошибки запросов к БД (если есть таковые). Пожалуйста, разберитесь со своей базой.

    Все приведенные там конструкции проверены и без проблем работают.

    С уважением к вам, Сергей.
     
  4. Казюлябр

    Казюлябр New Member Пользователи

    Регистрация:
    1 ноя 2013
    Сообщения:
    6
    Симпатии:
    0
    Разобрался сам

    mysql_query("UPDATE `wp_postmeta` SET `meta_value`='$_POST[meta_value]' WHERE (`post_id`='$_POST[post_id]',`meta_key`='$_POST[meta_key]')"); не работало, правильный вариант
    mysql_query("UPDATE `wp_postmeta` SET `meta_value`='$_POST[meta_value]' WHERE (`post_id`='$_POST[post_id]' AND `meta_key`='$_POST[meta_key]')");

    Просто AND.
     
    Последнее редактирование: 22 фев 2015
  5. maxnemo

    maxnemo New Member Пользователи

    Регистрация:
    2 мар 2015
    Сообщения:
    32
    Симпатии:
    1
    Народ.
    Присваивайте post переменным
    PHP:
    $_POST['name']
    другие промежуточные типа
    PHP:
    $name=$_POST['name']
    и тогда не запутаетесь с mysql_query запросами, а то такая каша в кучу! =)))
     
  6. Василий

    Василий New Member Пользователи

    Регистрация:
    26 ноя 2011
    Сообщения:
    79
    Симпатии:
    2
    Здравствуйте!
    Не подскажете как парсить в разные таблицы с одинаковыми именами столбцов?
    У меня так:
    Но инсерт делает только в первую таблицу.
     
    Последнее редактирование: 21 апр 2015
  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Симпатии:
    3.485
    Здравствуйте.

    Скорее всего, ошибка во втором обращении к БД (в одном скрипте можно делать сколько угодно много обращений).

    PS: Обратите внимание на Как выводить в результат работы скрипта сообщения об ошибках MySQL-запросов и обратите внимание на mysql_real_escape_string вот тут Ссылки недоступны для гостей

    С уважением к вам, Сергей.
     
  8. Василий

    Василий New Member Пользователи

    Регистрация:
    26 ноя 2011
    Сообщения:
    79
    Симпатии:
    2
    Вообще перестал парсить в базу
     
    Последнее редактирование: 21 апр 2015
  9. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Симпатии:
    3.485
    Обратите внимание на Как выводить в результат работы скрипта сообщения об ошибках MySQL-запросов вот тут Ссылки недоступны для гостей , проанализируйте ошибки и устраните их.
     
  10. Василий

    Василий New Member Пользователи

    Регистрация:
    26 ноя 2011
    Сообщения:
    79
    Симпатии:
    2
    Это первое что я сделал. Прочитал мануал от корки до корки.
    Сделал так но логах ошибок не выявляет. Во вложении проект со скриптом.
     

    Вложения:

  11. rom4ik696

    rom4ik696 New Member Пользователи

    Регистрация:
    4 июн 2015
    Сообщения:
    3
    Симпатии:
    0
    Доброго времени суток.
    Создал проект...настроил....подключил к БД...все прошло успешно кроме одного...
    не правильно выполнился [HTMTOTXT:]<CD_GRAN_2!>[/HTMTOTXT].
    Как выглядит в таблице -
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    <PHP_SCRIPT=http://localhost/script.php>title=[URLENCODE]<CD_GRAN_1!>[/URLENCODE]
    price=[URLENCODE][HTMTOTXT:]<CD_GRAN_2!>[/HTMTOTXT][/URLENCODE]
    stock=[URLENCODE]<CD_GRAN_3!>[/URLENCODE]
    region=[URLENCODE]<CD_GRAN_4!>[/URLENCODE]
    link=[URLENCODE]<CD_GRAN_5!>[/URLENCODE]</PHP_SCRIPT>

    Дело в том что я выдернул цену и там остался ненужный html код. При выводе в CSV я просто удалял его через [HTMTOTXT:], но при выполнении скрипта что то идет не так.
    Как заставить его удалить ненужный html ??

    Спасибо
     
  12. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Симпатии:
    3.485
    Здравствуйте.

    Рекомендую обращать внимание на лог выполнения функций в нижней части окна предпросмотра парсинга контента.

    Макрос [HTMTOTXT] выполняется после макроса <PHP_SCRIPT>.

    Для границы парсинга 2 (цена) в ctrl+4 включите галочку htm to txt. Это должно вам подойти для решения поставленной задачи.

    С уважением к вам, Сергей.
     

Поделиться этой страницей