Задать вопрос
Ответы пользователя по тегу PHP
  • Как выполнить sql запрос?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Однако очень-сильно-супер-нуб, да?
    <?php
    // Файл firstsql.php
    $host='localhost'; // имя хоста (уточняется у провайдера), и как правило используется 'localhost'
    $database='__database_name__'; // имя базы данных, которую вы должны вписать вместо __database_name__
    $user='__user_name__'; // заданное вами имя пользователя, его надо знать и вписать вместо __user_name__
    $pswd='__user_password__'; // заданный вами пароль, его надо вписать вместо __user_password__
     
    $dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL: ".mysql_error());
    mysql_select_db($database, $dbh) or die("Не могу подключиться к базе: ".mysql_error($dbh));
    
    //Идущие далее запросы УДАЛЯЮТ записи из таблиц,
    //опустошают таблицы,
    //вы ПОТЕРЯЕТЕ эти данные!!!!
    
    $query ="SET foreign_key_checks = 0;TRUNCATE TABLE oc_product;TRUNCATE TABLE oc_product_attribute;TRUNCATE TABLE oc_product_description;TRUNCATE TABLE oc_product_discount;TRUNCATE TABLE oc_product_image;TRUNCATE TABLE oc_product_option;TRUNCATE TABLE oc_product_option_value;TRUNCATE TABLE oc_product_related;TRUNCATE TABLE oc_product_related;TRUNCATE TABLE oc_product_reward;TRUNCATE TABLE oc_product_special;TRUNCATE TABLE oc_product_to_category;TRUNCATE TABLE oc_product_to_download;TRUNCATE TABLE oc_product_to_layout;TRUNCATE TABLE oc_product_to_store;TRUNCATE TABLE oc_review;DELETE FROM oc_url_alias WHERE query LIKE 'product_id=%';TRUNCATE oc_category;TRUNCATE oc_category_description;TRUNCATE oc_category_path; TRUNCATE oc_category_to_store;TRUNCATE oc_category_to_layout;TRUNCATE oc_category_filter;";
    
    foreach (explode(";", $query) as $q)
    {
            mysql_query($q, $dbh) or die("Ошибка выполнения запроса: ".mysql_error($dbh));
    }
    ?>

    Этот текст нужно сохранить в файл "firstsql.php", и в браузере открыть этот файл по ссылке типа http://адрес-вашего-сайта/firstsql.php.
    Ответ написан
  • Как определить, чередуются ли буквы и цифры в строке?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    if (preg_match('/^(\w\d|\w$)+$/', $arr[$i])) { }
    Ответ написан
    Комментировать
  • Как правильно написать php класс для работы с mysqli?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Конкретно в вашем коде первая ошибка из-за того, что переменная $sql (открытое соединение с MySQL) не попадает внутрь функции select(). Или передавайте в качестве аргумента (что неудобно из-за лишнего кода), или храните эту переменную внутри класса Database{}.

    Вторая ошибка вытекает из первой, поскольку mysqli_query() не отрабатывает корректно, не возвращает результат, необходимый в mysqli_fetch_array().
    Ответ написан
    Комментировать
  • Почему не работает функция php?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Рекомендую сделать так:
    if (empty($row['id'])) echo ('Ошибка!');
    else mysqli_query($mysqli, "INSERT INTO `notifications` VALUES ('', '".mysqli_real_escape_string($mysqli, $row['id'])."', 0, NOW(), '".mysqli_real_escape_string($mysqli, $p2)."')");
    Ответ написан
  • Как правильно написать с версии php 5 на 7?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Функции reset() нужна переменная типа массив.
    $selected_currency=array_keys($currencies);
    reset($selected_currency);
    Ответ написан
    Комментировать
  • Как обновить все ячейки у определённого id?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну вот так:
    $uid = 222;
    if ($result = $mysqli->query("SELECT * FROM `121` WHERE `uid`='".$mysqli->real_escape_string($uid)."' LIMIT 1"))
    {
        $set = array();
        $row = $result->fetch_object();
        foreach ($row as $k => $v)
        {
            if ($k != "uid" AND $v !== 0)
            {
                $set[] = "`{$k}`='0'";
            }
        }
        $result->close();
        $mysqli->query("UPDATE `121` SET ".implode(", ", $set)." WHERE `uid`='".$mysqli->real_escape_string($uid)."'");
        unset($set, $result, $row);
    }
    Ответ написан
    2 комментария
  • Как объединить многомерный массив?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Так это не объединение, это переформатирование...
    $new_arr = array();
    foreach ($old_arr as $r) {
        if (empty($r['id'])) {
            continue;
        }
        foreach ($r as $k => $v) {
            if (preg_match("/^man\d*$/s", $k)) {
                $new_arr[] = array('Team' => $v, 'id' => $r['id']);
            }
        }
    }
    Ответ написан
    Комментировать
  • Как исправить ошибку?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Обычное решение:
    if (!isset($_GET['lang']) OR !in_array(trim($_GET['lang']), $config['langs'])) {

    Плохая практика:
    if (!in_array(trim(@$_GET['lang']), $config['langs'])) {
    Ответ написан
    Комментировать
  • Как сделать чтобы при новом переходе на страницу менялся конец его url?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    <a href="<?=SITE_DIR?>personal/favorite?12<?=rand();?>">
    Ответ написан
    Комментировать
  • Разделение "запроса" и веб-страницы - о чем идет речь?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Видимо отдельно функцию для запроса входных данных, отдельно функцию получения SNMP, отдельно функцию вывода HTML, и отдельно функцию для вызова первого, второго и третьего.
    Ответ написан
    Комментировать
  • Как заставить сервер думать, что я не робот?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    У cURL есть одна особенность, которая соответствует стандарту HTTP, но на ней то и ловят. Во время HTTP запроса cURL не использует полный URL (с именем сервера) в таком вот виде: "GET http ://site.org/path/file.ext?params HTTP/1.1". Вот по по этому "отсутствию полного URL" сервер и отлавливает.

    Яндексовская капча так делает, при чём из 100-а запросов случайно срабатывало 2-3. Пришлось самостоятельно писать весь функционал cURL через fsockopen()/fread()/fwrite(), с подгрузкой/сохранением куков в файле cURL-а.
    Ответ написан
  • Как устранить ошибку?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Массив $parts образуется из значения $this->request->get['path'] путём разбивания этого значения на части по символу подчёркивания. Если $this->request->get['path'] будет пустым, то и $parts будет пустым, и будет ошибка.
    Поскольку дальше по скрипту $category_id разрешено быть нулевым - добавьте $parts = array(0); перед 45-ой строкой, ошибка исчезнет. А правильнее сделать:
    //-- GET ALL PRODUCTS FILTER BY CATEGORY
    if(isset($this->request->get['path'])) {
    $parts = explode('_', (string)$this->request->get['path']);
    $category_id = (int)array_pop($parts);
    } else {
    $category_id = 0;
    }
    Ответ написан
    1 комментарий
  • Как скрывать классы у списков на странице?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну так и вырезайте из HTML, отправляемого ученику, все указания на правильные ответы ($html = preg_replace("/class=\"trueCheck\"/s", "", $html);). Всё равно браузер обратно отправляет не класс элемента, а идентификатор выбранного ответа.
    Ответ написан
    Комментировать
  • Как проверить в php результат запроса?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    if (!empty($id)) {
      header('Location:nt.php?id='.$id.'');
    }
    else {
      header('Location:index.php?error');
    }
    Ответ написан
    1 комментарий
  • Как отображать различное содержимое в зависимости от домена?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Смотрите сами:
    echo($_SERVER['SERVER_NAME']);
    Ответ написан
    Комментировать
  • Почему так странно ищет substr?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Третий аргумент - это не позиция конца подстроки, это длина необходимой подстроки.
    $namevalue=substr($findstr, $posnamevalstart + 1, $posnamevalend - $posnamevalstart - 1); // Лоджия
    Ответ написан
    Комментировать
  • Что делает этот код php?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Перебирает все элементы массива $arResult, и выводит название/описание из элемента $arResult, если $month равен "Январь", Июнь" или "Сентябрь", а название содержит "кофта", "футболка" или "шор".
    Не работает потому, что среди вариантов "Января", "Июнь" и "Сентябрь" нет варианта "Февраль".
    И еще, вместо strpos() лучше использовать stripos(), и >= 0 вместо > 0
    Ответ написан
    Комментировать
  • Как вывести кликабельный телефон в правильном формате?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    <a href="tel:<? echo(preg_replace("/[^\d]+/s", "", file_get_contents($_SERVER["DOCUMENT_ROOT"]."/include/iphone.php")));?>"><? readfile($_SERVER["DOCUMENT_ROOT"]."/include/iphone.php"); ?></a>
    Ответ написан
    1 комментарий
  • Почему не работает цикл в PHP?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Каждая форма работает отдельно. Объедините их в одну - и будут у вас одновременно доступны и $_POST['ans'], и $_FILES['file'].
    Ответ написан
    Комментировать
  • Как загрузить данные из бд для раскрывающейся таблицы?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Самый дуболомный вариант:
    $sql = mysql_query("SELECT * FROM TotalTickets ORDER BY email ASC") or die(mysql_error());
    $cust_email = false; $cust_txt = ""; $cust_sum = 0;
    while($cust = mysql_fetch_array($sql, MYSQL_ASSOC))
    {
        if ($cust_email !== false AND $cust_email != $cust['email'])
        {
            echo '<tbody class="labels">
                        <tr>
                            <td colspan="5">
                                <label for="accounting">'.$cust_email.': '.round($cust_sum, 2).'</label>
                                <input type="checkbox" name="accounting" id="accounting" data-toggle="toggle">
                            </td>
                        </tr>
                    </tbody>
                   <tbody class="hide">
                      '.$cust_txt.'
                   </tbody> ';
            $cust_email = $cust['email'];
            $cust_txt = "";
            $cust_sum = 0;
        }
        $cust_sum += $cust['price'];
        $cust_txt .= '                    <tr>
                            <td>'.$cust['filmName'].'</td>
                            <td>'.$cust['date'].'</td>
                            <td>'.$cust['timeBegin'].'</td>
                            <td>'.$cust['price'].'</td>
                            <td>0</td>
                       </tr>';
    }
    if (!empty($cust_txt))
    {
        echo '<tbody class="labels">
                        <tr>
                            <td colspan="5">
                                <label for="accounting">'.$cust_email.': '.round($cust_sum, 2).'</label>
                                <input type="checkbox" name="accounting" id="accounting" data-toggle="toggle">
                            </td>
                        </tr>
                    </tbody>
                   <tbody class="hide">
                      '.$cust_txt.'
                   </tbody> ';
    }
    Ответ написан
    Комментировать