Задать вопрос
  • "Плавающая" ошибка парсинга XML?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Попробуйте на отдельной тестовой странице позабирать xml и вообще его не обрабатывать никак. Просто сохраняйте где-нибудь. Это должен быть один и тот же товар, забранный несколько раз. Это нужно, чтобы точно определить валидность в пределах одного товара. 2) Сохраните несколько видов xml для нескольких товаров и тоже все их протестируйте на валидность.
    Тут главное убедиться, что вы всегда получаете валидный xml.

    Если там все хорошо, тогда переходите к парсеру. Прогоняйте все через него, но при этом отключив как можно больше функций удаления и очистки. Если и там все будет хорошо, тогда добавляйте по одной функции очистки/удаления или другие имеющиеся функции, постепенно локализуя проблему.

    Не стоит себе или кому-то верить наслово). Истина таится в мелочах (с)))
    Ответ написан
  • Как написать правильно sql запрос?

    @heartdevil
    плыву как воздушный шарик
    Привет

    Попробуйте так

    $userArr = implode(",", $array(66,1,33,54));
    
    SELECT s.id, s.customer_id, s.status, COUNT(s.status) AS count
    FROM statuses AS s
    INNER JOIN products AS p ON (p.status = s.status_name)
    WHERE s.customer_id = 1 AND p.modified BETWEEN "2015-08-10" AND "2015-09-10"  AND p.user_id IN ($userArr)
    GROUP BY s.status
    Ответ написан
  • Как сделать PDO + IN?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Вот вырезка

    /* Execute a prepared statement using an array of values for an IN clause */
    $params = array(1, 21, 63, 171);
    /* Create a string for the parameter placeholders filled to the number of params */
    $place_holders = implode(',', array_fill(0, count($params), '?'));
    
    /*
        This prepares the statement with enough unnamed placeholders for every value
        in our $params array. The values of the $params array are then bound to the
        placeholders in the prepared statement when the statement is executed.
        This is not the same thing as using PDOStatement::bindParam() since this
        requires a reference to the variable. PDOStatement::execute() only binds
        by value instead.
    */
    $sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
    $sth->execute($params);


    То есть, по сути, тебе можно вручную вот такую шнягу сделать
    'WHERE id in (?,?,?,?,?,?,?)'
    
    и собачить типизированные параметры
    
    ->bindParam(1, $id, PDO::PARAM_INT);
    ->bindParam(2, $id, PDO::PARAM_INT);
    ...
    
    Но это за тебя сделает
    
    вот эта штука
    
    $place_holders = implode(',', array_fill(0, count($params), '?'));
    
    насколько я понял.

    тадам
    Ответ написан
    Комментировать
  • Как сделать быстрый sql-запрос поиска по первым трем буквам?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Вот так, думаю, можно.

    -- Временная таблица для разложения qwe на буквы
    CREATE TEMPORARY TABLE qwe (letter VARCHAR (10));
    
    INSERT INTO qwe (letter) VALUES('q');
    INSERT INTO qwe (letter) VALUES('w');
    INSERT INTO qwe (letter) VALUES('e');
    
    -- Временная таблица для разложения rty на буквы
    CREATE TEMPORARY TABLE rty (letter VARCHAR (10));
    
    INSERT INTO rty (letter) VALUES('r');
    INSERT INTO rty (letter) VALUES('t');
    INSERT INTO rty (letter) VALUES('y');
    
    -- Временная таблица для разложения uio на буквы
    CREATE TEMPORARY TABLE uio (letter VARCHAR (10));
    
    INSERT INTO uio (letter) VALUES('u');
    INSERT INTO uio (letter) VALUES('i');
    INSERT INTO uio (letter) VALUES('o');
    
    -- Тестовая таблица для поиска.
    CREATE TEMPORARY TABLE abc (letter VARCHAR (10));
    
    INSERT INTO abc (letter) VALUES('u');
    INSERT INTO abc (letter) VALUES('qtiskdk');
    INSERT INTO abc (letter) VALUES('eyudkdk');
    INSERT INTO abc (letter) VALUES('zzzzzzzzz');
    
    -- SELECT CONCAT(qwe.letter, rty.letter, uio.letter, '%') AS pref FROM qwe, rty, uio -- этот запрос вернет cross join для всех сочетаний букв в нужном порядке. Для всех сочетаний будет добавлен знак % в конце.
    -- Теперь объединяем две таблицы и выводим только те записи которые удовлетворяют условию LIKE
    
    SELECT * FROM abc AS t
    INNER JOIN (SELECT CONCAT(qwe.letter, rty.letter, uio.letter, '%') AS pref FROM qwe, rty, uio) AS c
    ON t.letter LIKE c.pref
    Ответ написан
    Комментировать
  • Архитектура приложений. Как реализовать связь сущность-модель?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Загружайте связанные сущности works и materials не сразу, а по требованию.
    Ответ написан
    Комментировать
  • Не добавляет данные из формы в БД, как исправить?

    @heartdevil
    плыву как воздушный шарик
    Привет, несколько замечаний

    1) Попробуйте добавить вот такой код к вашему запросу, чтобы на случай ошибки увидеть ее
    if (!$res) {
        die('Неверный запрос: ' . mysql_error());
    }


    2) Включите ошибки

    error_reporting(E_ALL);
    ini_set("display_errors", 1);


    3) По mysq_query
    ВНИМАНИЕ: Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL.
    Ответ написан
    Комментировать
  • Как составить запрос на выборку данных, если нужно часть из них исключить через массив?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Точно не помню, но кажется сам запрос не может быть длиной в несколько тысяч символов. В этом плане у вас может быть проблема. Ну а если влезает, то ничего лучше where IN, думаю, нет.

    У вас, видимо, есть функция, вытаскивающая набор id-шников и вы ее просто подставляете в IN().
    Если хотите по-другому, вам надо будет напрямую писать запрос. Проследите, из какой таблицы тянутся id и укажите такой же запрос, как это делает, предполагаемая функция в условии IN().
    Ответ написан
    Комментировать
  • Какой SQL запрос задать на удаление части URLa?

    @heartdevil
    плыву как воздушный шарик
    Привет

    Прежде чем что-то изменять в базе, делайте ВСЕГДА бэкап.

    Попробуйте так:

    UPDATE wp_posts SET post_content = REPLACE(post_content,'www.domain.com/wp-content/uploads/sites/5','www.domain.com/wp-content/uploads');


    Вообще говоря, при переносе сайта на wordpress, обычно базу изменять нужно в нескольких местах. Вот тут почитайте.
    Ответ написан
    8 комментариев
  • Как вывести сообщение с информацией на C#?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Все зависит от того, где у вас вызывается самый последний пользовательский код. Берете многострадальную схему жизненного цикла страницы и по ней смотрите, где какой код у вас подписан. Соответственно, если есть код, который подписан на более поздней стадии цикла, и вы хотите после него вызвать ваше сообщение (так как какие-то данные еще могу быть не сформированы), то вам придется на этой же стадии, либо позднее вызвать ваше сообщение.
    Ответ написан
  • Group by 2 поля сразу как сделать?

    @heartdevil
    плыву как воздушный шарик
    А что именно не так у вас?

    Если я правильно понял то вам нужно примерно следующее.

    SELECT DISTINCT t.id
    FROM tst AS t
    GROUP BY CONCAT(t.`name`, t.`key`)
    Ответ написан
    Комментировать
  • Как в jquery дождаться анимации события, прежде чем начнет отрабатываться новое по другому событию?

    @heartdevil
    плыву как воздушный шарик
    Попробуйте использовать этот метод.

    Алгоритм примерно такой. 1) Стоп любой соответствующей анимации. 2) Запуск анимации.

    stop method
    Ответ написан
    2 комментария
  • Как сделать группировку результатов по дням в SQL-запросе?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Запрос примерно такой будет, если я верно понял.
    SELECT t.field1, t.field2 FROM table AS t
    WHERE condition
    GROUP BY DAYOFMONTH(t.date), HOUR(t.date), MONTH(t.date)
    Ответ написан
    1 комментарий
  • Необходима помощь с mysql выборкой | is not?

    @heartdevil
    плыву как воздушный шарик
    Данил Чекалин: Все равно проблему не очень понял. Объясните еще немного подробнее, пожалуйста).

    Вам нужно выбрать список часов для определенного бизнес дня, так? Какая вам разница какой день недели стоит? У вас же основной день -- это бизнес день. Вот по нему у вас по-порядку все часы и выбираются. И это, судя по всему, правильно. Так как период по времени одного бизнес дня растянут между рабочими днями.
    Ответ написан
    Комментировать
  • В чем может быть ошибка при замене в строке?

    @heartdevil
    плыву как воздушный шарик
    Привет.
    По методу Replace

    Данный метод не изменяет значение текущего экземпляра. Вместо этого возвращается новая строка, в которой все вхождения oldValue заменяются на newValue.
    Ответ написан
    Комментировать
  • Нужна помощь в построение таблиц и организации сетки?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    По вашей урезанной структуре непонятно кто с кем играл.
    Чтобы противопоставить две команды, добавьте еще одно поле-свзяь на таблицу team.
    Если у вас турнир сразу на выбывание идет, тогда структура, на мой взгляд, нормальная. Добавьте еще одно поле-свзяь на Стадии турнира (значения 1/8, 1/4, 1/2, 1). И при добавлении команд в в таблицу Matches, просто указывайте стадию.
    Ответ написан
  • Как отказать заказчику, если уже начал работать, но не справляешься с задачами?

    @heartdevil
    плыву как воздушный шарик
    Вам нужно все конкретно изложить заказчику. Если действительно не можете сделать оставшуюся часть, то немедленно расскажите об этом своему клиенту и передайте выполненную часть. Извинитесь. Если же вы можете доделать остальное, но на это вам потребуется больше времени (постарайтесь реально оценить сроки), тогда скажите как есть. Что неправильно оценили сроки из-за того, что не учли то-то и то-то. Заказчик может вас понять и оставить работать дальше, увеличив срок. Но здесь уже не будет переоценки суммы за проект. Даже "супер срочные" проекты не всегда срочные).
    Ответ написан
    Комментировать
  • Подсчет количества элементов в категориях и подкатегориях (SQL)?

    @heartdevil
    плыву как воздушный шарик
    Привет.
    Так-с. А если вот так примерно? Запрос не тестил. Просто как идея. На вскидку...
    SELECT par.Id, COUNT(po.id) AS postCount
    FROM Categories AS par
    INNER JOIN Categories AS sub ON par.id = sub.parent_id
    INNER JOIN Posts AS po ON po.id = sub.id
    GROUP BY par.Id
    Ответ написан
    Комментировать
  • Как правильно написать запрос sql для вывода данных из 2х таблиц?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    А если вот так только вывести (без WHERE), у вас данные правильно сопоставляются?

    select * from promobanr p join tovar on (kodt=2876 and kodt in(p.id_tovar))


    Лучше, конечно, переделать таблицу. В будущем вам еще тяжелее будет стопроцентно.
    Ответ написан
    Комментировать
  • Как выбрать количество заказов для различных товаров?

    @heartdevil
    плыву как воздушный шарик
    Примерно так.

    SELECT i.id, i.name, COUNT(o.item) AS OrderCount
    FROM items AS i
    INNER JOIN orders AS o ON i.id = o.item
    GROUP BY i.id, i.name
    Ответ написан
    Комментировать