Jump to content

jdk

User
  • Posts

    288
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by jdk

  1. Добрый день.
    Помогите пожалуйста написать запрос. Имеем 2 таблицы article и images. Отношение oneToMany.
    У images есть поле is_approved (true/false). Необходимо выбрать статью, только если все связанные с ней изображения не подтверждены.
    Написал такой вариант, но думаю можно лучше. БД - postgres.

    SELECT DISTINCT "acticle"."id" AS "id"
    FROM "articles"
            LEFT JOIN (
                select "article_id", "is_approved"
                FROM article_to_image ati
                where "is_approved" = false
                and not exists(select * from article_to_image where "is_approved" = true AND "article_id" = ati.article_id)
    	) as "images"
        on "images"."article_id" = article.id

     

  2. Добрый день. Поставил на ubuntu 16.04 php 7.2 и столкнулся со следующей проблемой:

    php -v

    Цитата

    PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20170718/pdo_mysql (/usr/lib/php/20170718/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: pdo_parse_params)) in Unknown on line 0
    PHP 7.2.11-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Oct 25 2018 06:43:25) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
        with Zend OPcache v7.2.11-3+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
        with Xdebug v2.6.1, Copyright (c) 2002-2018, by Derick Rethans
     

    apt-get install php(php7.2)-mysql не помогает.

    Подскажите пожалуйста, как можно побороть эту ошибку?

  3. Коллеги, подскажите пожалуйста по такому вопросу: Парсю каталог, который имеет следующую структуру - категории Первого уровня имею id А00001, второго Б00001, В00023 и т.д. Длина id всегда фиксированная. Сейчас сохраняю в базу как есть. Соответственно в бд храню id, parent_id. Есть ли смысл сокращать id до A1, B23?  
    Или можно ли как то оптимально сохранять структуру дерева в бд, зная что А это всегда первый уровень, Б - второй и т.д.?

  4. Добрый день.
    Коллеги, подскажите пожалуйста по настройке синонимов в elasticsearch. Делаю вроде всё по документации
     

    'settings' => [
                  'analysis' => [
                    'analyzer' => [
                      'my_synonyms' => [
                          'tokenizer' => 'standard',
                          'filter' => ['my_synonym_filter']
                      ]
                    ],
                    'filter' => [
                      'my_synonym_filter' => [
                          'type' => 'synonym',
                          'synonyms' => ['АКБ', 'аккумулятор', 'аккамулятор']
                          //'synonyms_path' => 'synonyms.txt'
                      ]
                    ],
                    'normalizer' => [
                      'lowercase_normalizer' => [
                          'type' => 'custom',
                          'filter' => ['lowercase']
                      ]
                    ]
                  ]

    Когда делаю mapping так же прописываю поле, для которого должны быть синонимы:
     

    'mappings' => [
                  'items' => [
                    'properties' => [
                      'name' => [
                        'type' => 'text',
                        'analyzer' => 'standard',
                        'fields' => [
                          'synonym' => [
                            'type' => 'text',
                            'analyzer' => 'standard',
                            'search_analyzer' => 'my_synonyms'
                          ]
                        ]
                      ],

    пробовал так же 'synonyms_path' => 'synonyms.txt'
    (тут прописывал аккумулятор => АКБ)

    файл подключается. Но когда пытаюсь искать аккумулятор результаты с АКБ не выдаются. Где может быть ошибка?

  5. Коллеги, если у кого-то есть опыт работы со sphinx, подскажите пожалуйта, ищу по строке 'pf-1007'. Такого значения нет. А как сделать, что бы в данном случае выдались записи для '1007' пробовал (*pf*)(*1007*), но тоже не получается.

  6. Здравствуйте. Подскажите пожалуйста по такому вопросу:
    Есть ссылка вида http://domain.com#param1#param2

    Копирую ссылку и вставляю её в word (вставка -> ссылка). Но когда пробую перейти по этой ссылке, вижу что она http://domain.com#param1

    Сылка конечно не валидная, но можно это как то побороть?

  7. Добрый день.

    Столкнуля с таким todo менеджером как todoist. Официальной библиотеки для php я для него не нашёл. Пробовал писать на прямую:
     

    $post_add = [
        'token' => $project['token'],
        'commands' => '[{
            "type": "item_add",
            "temp_id": '.uniqid().',
            "uuid": "'.$uuid.'",
            "args": {"content": "Task1", "project_id": 2F195551948} 
            }]'
    ];
    
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_add);
    
    $output = curl_exec($ch);
    $output = json_decode($output);
    echo '<pre>';
    var_dump($output);
    echo '</pre>';

    По доке - temp_id и uuid просто рандомные временные значения, всё время получаю:
     

    object(stdClass)#1 (5) {
      ["error_tag"]=>
      string(22) "INVALID_ARGUMENT_VALUE"
      ["error_code"]=>
      int(20)
      ["http_code"]=>
      int(400)
      ["error_extra"]=>
      object(stdClass)#2 (2) {
        ["expected"]=>
        string(4) "list"
        ["argument"]=>
        string(8) "commands"
      }
      ["error"]=>
      string(22) "Invalid argument value"
    }

    так же пробовал библиотеку todomove. Результат такой же.
    Сами проекты добавляются, а так же редактируются задачи, которые я создаю через веб интерфейс. Кто работал с данным сервисом подскажите, как писать задачи(item) в уже существующий проект(project)?

  8. Добрый день. Подскажите пожалуйста по такому моменту: загружаю ajax'ом файл на сервер, при успешной загрузке сразу отображается картинка. Как после этого "отвязать" файл от input? (на скриншоте 5.jpg)
    http://prntscr.com/dnws04
    Вот фунция - обработчик
     

    let self = this;
                    var data = new FormData();
                    let file = document.getElementById('avatar');
                    data.append('file', file.files[0]);
                    data.append('id', this.user.id);
    
                    if( file.files.length ) {
    
                        axios.post('/api/upload/avatar', data )
                                .then(function (res) {
                                    self.user.photo = res.data;
                                    data.delete('file');
                                }).catch(function (err) {
    
                        });
    
                    }

     

  9. Коллеги, подскажите пожалуйста по такому вопросу:
    Получаю из БД дату вида 2016-09-17 09:48:45. (Время по Владивостоку). Потом мне нужно часы (09) перевести на время по Москве. Как это наиболее эфективно можно сделать? У нас разница -7 часов.

  10. Делал по аналогии с уже работающими скриптами в кроне. Там сразу php, тоже слегка смутило)

    сделал

    'file' => '@users.csv',

    curl_erro ошибок не показывает, curl_getinfo( $ch ) тоже вроде ок.
    Завтра узнаю, пришёл ли файл.

  11. Здравствуйте.

    Делаю выборку из БД и пишу в файл.

    while($row = mysqli_fetch_assoc($result)) {
    
        $data = unserialize_array($row['data']);
    
        $line = [
            $row['user_id'].';'.
            $row['email'].';'.
            toWin( $data['firstname'] ).';'.
            toWin( $data['lastname'] ).';'        
        ];
        file_put_contents('users.csv',$line[0]."\n",FILE_APPEND);
    }
    
    fclose('users.csv');
    $mysqli->close();

     

    Хочу отправить его curl'ом, но не получается. Нужно отправить POST'ом. Подскажите пожалуйста, где ошибка? (php 5.4).

    $filesize = filesize('users.csv');
    $file = file_get_contents('users.csv', true);
    
    /*
    Отправка файла
    */
    
    $headers = "Authorization: Basic YXBpd2ViOnhLd1hTMk5Ua0R6VjlTeg==
        Accept: application/xml
        Content-Type: text/csv
        Content-Length: $filesize    
        ";
    $split = explode("\n",$headers);
    
    $ch = curl_init();
    
    $post = array(
        'file' => '@' . $file,
    );
    curl_setopt($ch, CURLOPT_URL, "https//...(куда шлю)");
    curl_setopt($ch, CURLOPT_HTTPHEADER,$split );
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
    curl_exec($ch);
    curl_close($ch);

    Если я к скрипту обращаюсь через  GET(открываю в браузере), то всё норм, файл создаётся и отправляется GET'ом. Но мне нужно что бы он (скрипт) раз в сутки отсылал данные.

    Если пытаюсь поставить в задаче php /var/.../index.php, то ничего не получается. Если вызываю скрипт из консоли та же беда. Подскажите, что делать?
     

  12. Здравствуйте.

    Не холивара ради. На днях наткнулся на такую штуку, как vuejs. Сделал пару простых приложений. Вроде штука удобная, думаю использовать как альтернативу jq. У кого нибудь уже есть опыт работы с этой либой? Как впечатления?

  13. Добрый день.
    Подскажите пожалуйста по следующему вопросу:
    Если несколько магазинов, необходимо выставлять им время работы. Как лучше это организовать. Есть список магазинов, думал так же сделать список шаблонов с расписанием, и выставлять для магазина какой-то шаблон. Само расписание такого вида: название дня, день (работаем/нет), время от, время до. Полагаю, в другой таблице должно быть название дней 1-7 пнд-вск. Но при этом должна быть возможность указывать что например 8го марта - выходной. Т.е. в принципе стандартное расписание, но когда начинаю проектировать - мысли в разные стороны.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy