Задать вопрос
  • Насколько у меня правильный код ООП php?

    @D3lphi
    Здесь плохо всё, к сожалению.

    Начнем с того, что вы неверно наследуете классы. Почему у вас класс, отвечающий за подключение к базе данных является родителем класса, работающим с заказами? Наследование применяется, если можно сказать, что что-то является чем-то. Например, разработчик является работником; компьютер является устройством и тд. Здесь же у вас вообще близко такой логике не получится следовать. Вы должны передавать хотя бы объект для работы с бд через инъекцию, например, в конструктор. В идеале, нужно использовать паттерн репозиторий для работы с базой данных.

    Класс SearchOrder у вас не только выполняет запросы, но еще и работает с данными, хранит состояние этих самых данных, фильтрует данные (strip_tags()). Непорядок. Это все нужно разделять. У вас вообще получаются какие-то богообъекты, которые умеют во все.

    Вы каждый раз повторяете строки с подготовкой запроса, биндингом параметров, отправкой запроса и тд. Не думали, что неплохо бы было написать какую-нибудь обертку и выполнять запросы как-нибудь так:
    $result = $wrapper->select("SELECT * FROM `tablename` WHERE `id` = :id", ['id' => 5]);

    ?

    Вы вызываете connect() в методах. То есть, каждый вызов этого метода будет приводить к установке нового соединения с базой данных, даже если оно уже было установлено. Соединение с базой данных это достаточно дорогостоящая операция.

    Зачем вы используете свойства, если можно обойтись обычными локальными переменными:
    $this->orderID = (int) strip_tags($orderID);
    $this->column = (string) strip_tags($column);
    $this->value = (string) strip_tags($value);

    ?

    Почему вы стриппите тэги у идентификатора? вы настолько не уверены в том, что влетает в функцию:
    strip_tags($orderID);
    ?

    Если вы не используете php 7 и, как следствие, скалярный тайпхинтинг, то должны делать проверки на тип входящего аргумента. Если что-то не так с типом, бросаем исключение (А не приводим его к нужному)! Например:
    if (!is_string($arg)) {
        throw new InvalidArgumentTypeException('string', $arg);
    }

    Это в идеале. Вы не обязаны это делать, конечно же. Но вот такие проверки делают приложение безопаснее. Хотя, опять же, повторюсь, в 2017 нужно начинать новые проекты на php 7.1+.

    Ошибки не нужно выводить в этом классе. Вы должны поймать исключение базы данных, преобразовать ее в исключение предметной области и пробросить его дальше и где-то там, на уровне выше вывести информацию пользователю об ошибке. В mvc системе, например, это делается в контроллере.

    Кроме всего прочего, почитайте про стандарты оформления кода. Вы им не следуете.

    Вам пока рано писать такие велосипеды. Судя по всему, у вас нет опыта вообще. Посмотрите готовые решения: фреймворки, ORM, изучите их, хотя бы поверхностно разберитесь, как оно работает и уже потом пробуйте что-то сделать, исходя из полученных знаний.

    Желаю успехов!
    Ответ написан
    1 комментарий
  • Как аннулировать авторизацию приложения (access_token) OAuth вконтакте?

    one4zero
    @one4zero
    https://vk.com/settings?act=apps - это в новом ВК
    Ответ написан
    Комментировать
  • Как реализовать подобный эффект на странице?

    Ответ написан
    Комментировать
  • Как побороть ReferenceError в JS?

    @tusklozeleniy
    Front-end разработчик
    Смотря где объявлена функция. Попробуй
    window.delMaster = function...
    И, соответственно,
    <div class="form-group" onclick="window.delMaster(...);">
    Ответ написан
    4 комментария
  • Как очистеть ВСЕ формы сразу, средствами Jquery или Js?

    @entermix
    $("form").each(function (i) {
            $(this).reset();
        });

    UPD:
    $("form").each(function (i) {
            $(this).get(0).reset();
        });

    https://jsfiddle.net/Lfvm732s/5/
    Ответ написан
    4 комментария
  • Насколько быстр PDO?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вот тут неплохая статья для новичков, читайте коменты, там много отзывов и юзкейсов народ привел, основная мысль - пдо изначально объектноориентирован и имеет препаред стэтментс. Это а) удобно б) безопасно. Все остальные пиписькомерялки в проектах типа "мой второй улучшенный блог на пхп" смысла не имеют. Ибо выигрыш в скорости разработки/безопасности на сегодняшний день важнее микропреимуществ от смены драйвера к бд.
    Ответ написан
    4 комментария
  • Почему не работает условие JS?

    AAChibilyaev
    @AAChibilyaev
    Разработка
    Очень грубо и неправильно в JS пихать PHP куски.
    Попробуйте хранить totalbasket на стороне браузера)
    Ответ написан
    7 комментариев
  • Положить массив в другой массив?

    goodwin332
    @goodwin332
    <?php
    
    $orig = [
    	[
    		0 => 'Введите vin-код',
            4 => 'Идентификационный номер',
            5 => 'XTA2*******************',
            6 => 'Марка',
            7 => 'LADA',
            8 => 'Модель',
            9 => '21901',
            10 => 'Тип транспортного средства',
            11 => 'легковой автомобиль',
            12 => 'Объем двигателя, куб.см.',
            13 => '1100-1800',
            14 => 'Модельный год',
            15 => '1985',
            16 => 'Рынок сбыта',
            17 => 'внутренний рынок',
            18 => 'Страна происхождения',
            19 => 'Россия',
            20 => 'Серийный номер',
            21 => '325847',
    	]
    ];
    
    $need = [
      'brand' => 'Марка',
      'model' => 'Модель'
    ];
    
    $result = [];
    
    foreach ($orig as $arr) {
    	$record = [];
    	foreach ($need as $keyNew => $keyOld) {
    		if (in_array($keyOld, $arr)) {
    			$index = array_search($keyOld, $arr);
    			$record[$keyNew] = $arr[intval($index)+1];
    		}
    	}
    	if (!empty($record)) {
    		$result[] = $record;
    	}
    }
    
    var_dump($result);
    Ответ написан
    1 комментарий
  • Как сгенерировать массив со значениями?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    $items = explode("\n", file_get_contents('mystring.txt'));
    echo var_export($items, true);
    Ответ написан
    Комментировать
  • Как убрать обводку у type=range?

    MasterGerold
    @MasterGerold
    Попробуй вот так:
    .class [type=range]:focus {
        outline: none;
    }

    Маленькая статья на эту тему
    Ответ написан
    Комментировать
  • Как убрать обводку у type=range?

    @sleepyKitty
    outline: none;
    Ответ написан
    Комментировать
  • Как оформить договор на разработку сайта?

    @MegoZnatok
    Если вы физлицо, обязательно проследите, чтобы в сумму выплаты не входили налоги и взносы в фонды. прямо напишите это в договоре, иначе у вас могут это все вычесть из выплаты, а это 30 процентов.
    Ответ написан
    Комментировать
  • Как убрать ошибку в 2 циклах?

    qonand
    @qonand
    Software Engineer
    foreach ($while1 as $arrayStep1) {
        echo $arrayStep1['amount'] , '<br>';
    }
    Ответ написан
    Комментировать
  • Как оформить договор на разработку сайта?

    opium
    @opium
    Просто люблю качественно работать
    договор это в первую очередь суд в плане безопасности, вопрос в том готовы ли вы долго и упорно судиться по нему.
    Ответ написан
    2 комментария
  • Как оформить договор на разработку сайта?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Разделы договора - расписываете максимально детально и НЕ ДВУСМЫСЛЕННО!
    2. ТЗ - прикрепляете как приложение к договору.
    3. Сроки и порядок сдачи работ (+этапность) - тоже как ещё одно приложение.
    4. "Права и обязанности сторон" и "протоколы разрешения конфликтов" - особенно детально прописываете.

    Ответ написан
    Комментировать
  • Как оформить договор на разработку сайта?

    Ankhena
    @Ankhena
    Нежно люблю верстку
    Описываете все как можно подробнее в ТЗ.
    Заказчик его обязательно подписывает.

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

    Предоплата не менее 50%.

    Составление ТЗ тоже оплачиваемая работа.

    UPD (по результатам комментариев):
    50%-ная предоплата уравнивает риски.
    С какой стати Исполнитель должен брать на себя большую долю рисков?
    Опять же у Исполнителя есть портфолио с выполненными заказами и можно не полениться и позвонить по контактным номерам на сайтах заказчиков и узнать, что они думают об Исполнителе.
    В договоре могут быть прописаны разные условия про возврат предоплаты. С каком случае и в каком размере она должна быть возвращена.
    Ответ написан
  • Как в JQ получить содержимое блока?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    попробуй через $('#content').text() или $('#content').html()
    Ответ написан
    2 комментария
  • Что не так с запросом MYSQL?

    @saltydogd
    ORDER экранируйте и больше так не делайте
    Ответ написан
    Комментировать
  • Как получить данные из $_SESSION?

    На подключаемой станице нужно добавить код:
    <?php 
    var_dump(isset($_SESSION['data']) && is_array($_SESSION['data']) && isset($_SESSION['data']['needKey'])) ? $_SESSION['data']['needKey'] : 'No data');
    ?>

    Или все данные из $_SESSION['data']:
    <?php 
    var_dump(isset($_SESSION['data']) ? $_SESSION['data'] : 'No data');
    ?>
    Ответ написан
    1 комментарий
  • Авторизация на IP камере через PHP?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Очевидно, что при авторизации вам отдаётся кука, которая автоматически передаётся браузером при следующих запросах. Вам нужно эмулировать браузер: получить её, сохранить и передавать.
    Возможно, схема авторизации чуть сложнее - нужно открывать консоль браузера и разбираться, какие именно запросы отправляются, с какими заголовками и каким содержимым.
    Ответ написан
    Комментировать