Задать вопрос
Ответы пользователя по тегу PHP
  • Как осуществить массовый UPDATE в MySQL через PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если proc меняется по простому правилу (например, proc=proc+1), то
    UPDATE `table` SET `proc`=`proc`+1 WHERE ...
    Если новое значение proc через старое получить в MySQL сложно, и id уникальные (PRIMARY KEY или UNIQUE), то
    INSERT INTO `table` (`id`, `proc`) 
        VALUES ($id1, $proc1), ($id2, $proc2), ... 
        ON DUPLICATE KEY UPDATE SET `proc` = VALUES(`proc`)

    Если id неуникальные, то только отдельными запросами
    UPDATE `table` SET `proc` = $proc1 WHERE `id` = $id1
    UPDATE `table` SET `proc` = $proc2 WHERE `id` = $id2
    Ответ написан
    Комментировать
  • Без WWW сайт не работает, через htaccess не помогает, в чем может быть дело?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А в DNS A-запись для site.ru (без www) есть?
    Ответ написан
  • Проблема с IF как решить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А не лучше этот IF прямо в запрос включить? Если до заполнения значение `date_finish` NULL, то
    SELECT `track`, `phone`, `status`, 
           to_days(IFNULL(`date_finish`, curdate())) - to_days(`date_add`) as `diff` 
        FROM `track_tabl` WHERE `id_user` = '$id_user'

    Если `date_finish` - пустая строка, то
    SELECT `track`, `phone`, `status`, 
           to_days(IF(`date_finish` = '', curdate(), `date_finish`)) - to_days(`date_add`) as `diff` 
        FROM `track_tabl` WHERE `id_user` = '$id_user'

    Ну и лучше используйте параметризованные запросы.
    Ответ написан
    Комментировать
  • Как сформировать таблицу из массива данных?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Во-первых - а зачем два запроса? Можно всё получить в одном.
    Во-вторых - лучше использовать не *, а конкретный список полей.
    В-третьих - откажитесь от mysql, и от прямой подстановки переменных в запрос. Используйте mysqli или PDO с параметризованными запросами.
    В-четвёртых - что за таблицу надо получить? HTML? Тогда зачем массив? Сразу в цикле формируете строки <tr>, общий вид должен получиться такой:
    <table>
      <thead>
        <tr><th>Трек-код<th>Телефон<th>Статус<th>Время в пути
      <tbody>
        <tr><td>R417...<td>+7900...<td>Прибыло<td>11 дней
        <tr><td>...<td>...<td>...<td>...
        ...
    </table>
    Ответ написан
    Комментировать
  • Как искать несколько элементов в PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Например в цикле, используя полученную позицию +1 как третий аргумент strpos - смещение для начала поиска.
    Ответ написан
    Комментировать
  • Как организовать работу с графиками(расписания)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Общий принцип поиска пересечений на двух таких графиках - преобразовать их в один общий список (время начала/конца интервала, код), где код +1 обозначает начало интервала, -1 конец интервала. Затем отсортировать список по времени и пройти по нему считая промежуточную сумму кодов. Там, где сумма становится равной 2 - начинается совпадающий период.
    Дальше решение зависит от множества других условий, например минимальной и максимальной продолжительности занятия репетитора с одним учеником, где проводятся занятия - в одном месте, или репетитору надо ездить по ученикам.
    Прямого решения здесь может и не быть, по темам "составление расписания занятий" люди дипломные работы пишут.
    Ответ написан
    Комментировать
  • Как посчитать количество повторяющихся букв (отрезков) в наборе слов?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Угу. Туда же попадут "автор", "автохтон", "автобиография", "автомат"... А уж слова с приставками... По хорошему, надо разделять слова на приставку, корень (корни), суффикс и окончание, для чего желательно знать, как минимум роль слова в предложении (и то может не помочь, попробуйте разобрать "Косил косой косой косой" - да, тот самый заяц на поляне, да ещё и коса кривая.
    Но если так хочется - строите дерево, где каждый уровень - следующая буква слова, а в узлах и листьях стоят счётчики количества слов. Для слов "автомобиль", "авто" и "автострада" получаем:
    .                   +-м(1)-о(1)-б(1)-и(1)-л(1)-ь(1)
    .а(3)-в(3)-т(3)-о(3)+
    .                   +-с(1)-т(1)-р(1)-а(1)-д(1)-а(1)
    Затем обходим дерево, там где сумма счётчиков в дочерних узлах не равна счётчику в родительском - заканчивается слово, а разность между суммами даёт количество этих слов в тексте.
    Ответ написан
    Комментировать
  • Как добавить изображение в базу данных, не сохраняя его в директорию?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ну, если уж через mysqli, то гораздо лучше так:
    $size = filesize($_FILES['file']['tmp_name']);
    $data = fread(fopen($_FILES['file']['tmp_name'], "r"), $size);
    $descr = trim($_POST['form_description']);
    $name = $_FILES['file']['name'];
    $type = $_FILES['file']['type'];
    $request = $dbh->prepare("INSERT INTO `binary_data` ".
            "(`description`, `bin_data`, `filename`, `filesize`, `filetype`) ".
            "VALUES (?, ?, ?, ?, ?)");
    $resuest->bind_param('sbsis', $descr, $data, $name, $size, $type);
    $request->execute();
    $id = $dbh->insert_id;

    P.S. Поиск в Google не заменяет голову.
    Ответ написан
  • Найти ошибку в алгоритме сортировки?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Странно, а в каком месте стоял var_dump? Вообще-то, в конце работы вашего алгоритма получаем
    array(4) { [0]=> int(200) [1]=> int(7) [2]=> int(6) [3]=> int(6) }

    То есть сортировка работает, только по убыванию.
    Ответ написан
    3 комментария
  • Почему не выполняется запрос mysqli?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Нельзя выполнить подряд два запроса с MYSQLI_USE_RESULT. Необходимо сначала закрыть первый запрос через $result->free(). В вашем случае, если данные по запросу дальше не используются, то лучше использовать не num_rows, а COUNT(*).
    Ответ написан
    7 комментариев
  • В чём ошибка SQL-запроса ?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Сделайте вывод сформированного запроса. После mysqli_query смотрите не mysqli_connect_error(), а mysqli_error().
    $sql = "UPDATE indexing_link SET title='".$title."', short='".$short ."' WHERE id=".$id_current_url;
    print $sql;
    mysqli_query($mysqli, $sql) or die('Error_ ('.mysqli_errno($mysqli).') '.mysqli_error($mysqli));

    И покажите ещё структуру самой таблицы, скажем через SHOW CREATE TABLE `indexing_link`
    Ответ написан
    2 комментария
  • Как правильно сделать выборку из LDAP через PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    У меня этот код работает (естественно параметры заменены на мой домен).
    Попробуйте так:
    $result=ldap_search($adconn, $LDAP['dn'], $filter, $att);
    if ($result) {
        $info = ldap_get_entries($adconn, $result);
        print $info["count"]." entries returned";
    } else
        print "LDAP search error ".ldap_errno($adconn)." (".ldap_error($adconn).")";
    Ответ написан
    Комментировать
  • Как преобразовать http://xn--j1ail.xn--p1ai/ в нормальный url?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Например через idna_convert

    require_once('idna_convert.class.php'); 
    $IDN = new idna_convert();
    $domain = 'xn--j1ail.xn--p1ai';
    $domain = $IDN->decode($domain);
    echo $domain;
    Ответ написан
    1 комментарий
  • Как настроить обновление страницы сайта каждые 5 секунд через crontab?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Cron Вам не поможет, у него минута - минимальный интервал.
    Если только создадите 12 ежеминутных заданий, каждое (кроме первого) с задержкой через sleep
    wget ...
    sleep 5 && wget ...
    sleep 10 && wget ...
    Ответ написан
    5 комментариев
  • Как составить все возможные комбинации размещения 10 яблок на 21 тарелке?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Условие неполное. Считаются ли яблоки уникальными или одинаковыми? Какое максимальное количество яблок может лежать на одной тарелке?
    Ответ написан
    Комментировать
  • Правильно ли сформирован запрос на php, mysql?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если Вы только изучаете PHP, то сразу откажитесь от использования функций mysql_*, они уже больше года в статусе deprecated. Используйте mysqli_* или PDO с параметризованными запросами.
    По вопросам:
    1. Точка с запятой не обязательны.
    2. Для поля AUTO_INCREMENT значение указывать не надо, его автоматически генерирует сервер. Дату надо хранить в поле с типом DATE, DATETIME или TIMESTAMP, соответственно присваивать CURDATE() или NOW().
    Ответ написан
    1 комментарий
  • Как реализовать отображение своих файлов для каждого пользователя сайта из одного и того же каталога?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Возвращайте 301 redirect и реальный url файла.
    <?php
      header(“HTTP/1.1 301 Moved Permanently”);
      header(“Location: {$_SERVER['DOCUMENT_ROOT']}/allfiles/user1/image.png”);
    ?>
    Ответ написан
  • Почему в PHPMyAdmin запрос проходит а с PHP нет?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Не используйте mysql_, он уже больше года в статусе deprecated. Используйте mysqli_ или PDO.
    2. Запросы надо передавать по одному, то есть каждый INSERT отдельным вызовом.
    Ответ написан
  • Как сделать авторизацию через curl при всплывающем окне до загрузки страницы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    То есть Вы хотите имитировать вход на страницу из своего скрипта? Тогда открываете её в браузере в режиме разработчика (F12) и смотрите, какие запросы и с какими параметрами отправляются на сайт. Затем оставляете только необходимые для авторизации запросы и их параметры и определяете метод сохранения авторизации (чаще всего это установка JSESSIONID). Затем имитируете эти запросы в curl, возможно придётся устанавливать поля Referer и User-Agent и обязательно в каждом запросе сохранять cookie с передачей их в следующий запрос.
    Ответ написан
    Комментировать
  • Как организовать структуру таблиц в БД?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Отдельная таблица (артикул, размер, остаток).
    Ответ написан
    Комментировать