Задать вопрос
  • Каким образом сохранить целостность данных в базе без триггеров?

    @Azperin
    Дилетант
    Клиент заказывает перевозку, например через сайт, на языке программирования проверяется что выбрана хотябы одна услуга и потом создается счет и к счету привязываем заказ.
    START TRANSACTION;
    INSERT INTO `bills`(`custom_id`) VALUES ($ид_клиента);


    $bill_id = mysqli_последний_вставленный_ид

    И добавляем какие услуги нужно предоставить. Проверку выполнена она или нет, сами сделаете.
    foreach ($массив с ИД зказанных услуг) {
    INSERT INTO `order_service`(`bill_id`,`service_id`) VALUES ($bill_id,$service_id);
    };
    COMMIT;


    Тоесть получаем 1 счет на 1 клиента и хоть ты убей не получится в счет вписать еще 1 клиента. Все услуги будут привязанны именно к этому счету.

    После выполнения собираем все выполненные заказанные услуги и выставляем клиенту:
    SELECT `service_id` 
    FROM `order_service`  
    WHERE `bill_id`=$по счету


    Названия и прочее добивать джойнами.
    Ответ написан
  • Подходит ли Zend для крупного интернет-магазина?

    @Azperin
    Дилетант
    От бюджета ведь все зависит и специалиста которого наймете. Если после создания человек, который занимался сайтом, не остается в команде, то берите лучше все самые попсовые и легкие технологии по типу WordPress с плагином на магазин или opencart какойнибудь, чтобы потом было проще обратиться на фриланс биржу например, чтоб сайт починили.
    Если же специалист остается, то платформу выбирает он сам, потому что ему дорабатывать.

    Важно не сколько у вас позиций, а сколько клиентов.

    А ну и забыл добавить, скорость сайта зависит не столько от движка на котором написан, а доступность к регионам продажи, скорости соединения и хорошо настроенного сервера. Поэтому лучше купите более хороший хостинг и наймите людей с фриланс бирж, которые вам сделают простой и быстрый интернет-магазин, благо спецов там хватает.
    Тут конечно зависит от размеров компании, но я бы вообще посоветовал сделать простейший самопис без всяких кмс и фреймворков, т.к. интернет-магазин это самое простое в плане разработки.
    Ответ написан
    Комментировать
  • Безопасное подключение к базе данных MySQL?

    @Azperin
    Дилетант
    Не совсем понятно в чем может состоять опасность. Ты можешь хоть полностью на ajax перевести сайт, который будет обращаться к файлу с подключением и сразу выполнять скрипт. Соблюдай стандарты написания подключений и запросов, а также перехватывай ошибки, которые могут теоретически возникнуть. Например упала у тебя база и чтоб пользователю показало не какое-нибудь
    MySQL Error #XXX: no connect to xxx.xxx.xxx with user login:vasya and password: pupkin.
    А просто выводились сообщения типа "База пока лежит, попробуй позже". Ну и обрабатывай любые запросы в соответствии со стандартами и рекомендациями из официальных или популярных источников. Не забывай обновлять ПО, хотя бы просто читай ченжлоги и смотри есть ли там критические заплатки и все у тебя будет отлично и никто тебя не взломает, поэтому не надо паранойю разводить и делай так как тебе удобно. Фреймворк нужен только тогда, когда понимаешь зачем он нужен, просто так его учить... ну разве что для собеседования на работу.
    Ответ написан
    Комментировать
  • Ошибка при установке XenForo?

    @Azperin
    Дилетант
    В голову приходят несколько мыслей:
    1. Проверь скриптом установленное ПО https://xenforo.com/xenforo-requirements-test.zip
    2. Посмотри в какой кодировке создаются таблицы
    3. Попробуй перезалить файлы и поставить на всю папку рекурсией 777 доступ
    4. Скачай официальную версию
    Ответ написан
  • Как сделать запрос?

    @Azperin
    Дилетант
    Не понятен вопрос, количество чего должно быть больше ?

    SELECT  t1.email
    FROM  " . DB_PREFIX . "stock AS t1
    INNER JOIN product ON (product_id =  '" . (int) $product_id."' AND status = 0)
    Ответ написан
    Комментировать
  • Как можно реализовать фильтрацию div блоков на js?

    @Azperin
    Дилетант
    фидлер и кодпен у меня глючат почему-то, попробуй мой топорный вариант:
    <div class="checkbox" >
    	<input type="checkbox" id="all" onclick="showAll();"><label for="all">Показать все</label>
    	<input type="checkbox" id="one" onclick="hideBox();"><label for="one">Показать one</label>
    	<input type="checkbox" id="two" onclick="hideBox();"><label for="two">Показать two</label>
    	<input type="checkbox" id="three" onclick="hideBox();"><label for="three">Показать three</label>
    </div>
    <div class="blocks">
        <div class="one">текст блока one</div>
        <div class="two">текст блока two</div>
        <div class="three">текст блока three</div>
    </div>


    function showAll () {
    $('.blocks div').css('display','block');
    $('.checkbox input').attr('checked', false);
    $('#all').prop('checked', true);
    };
    
    function hideBox() {
    $('#all').attr('checked', false);
    $( ".blocks div" ).each(function(i) {
        var className = $(this).attr("class"); 
        var idBox = $('#'+className).prop("checked");
        if (!idBox) {
          $(this).css('display','none');
        } else {
          $(this).css('display','block');
        };
    });
    };
    Ответ написан
    Комментировать
  • Как извлечь цифры?

    @Azperin
    Дилетант
    Я может вопрос не так понял, но вродь работает [0-9]{3} [0-9]{3} [0-9]{3}
    Ответ написан
  • Как написать реулярку от ";" до ";" и между ними должно быть от трех цифр потом равно и любые символы?

    @Azperin
    Дилетант
    Дак ; включать или нет
    ^[;][0-9]{3,}[=].*[;]$
    Будут валидны строчки
    ;22241231=;
    ;22241231=фыв3фы3421йцв;

    Если нужно чтобы после = обязательно был хоть 1 символ, то ставшь .+ вместо .*
    Ответ написан
    Комментировать
  • Как правильно задать параметры заголовку блока?

    @Azperin
    Дилетант
    Я бы предложил использовать джаваскрипт, отлавливаешь высоту всех блоков и задаешь всем по максимальной и делаешь например FadeIn их. Так же сделать отступ слева у заголовка, чтобы при переносе слова, оно было на одном вертикальном уровне с заглавной буквой. Кнопку "Смотреть подробнее" пришпандориваешь к нижней части блока, чтобы они все были на одном горизонтальном уровне вне зависимости от высоты.

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

    Есть еще вариант, перенести заголовок над картинкой в диве с фиксированной высотой в которую гарантированно влезут все заголовки и у всех блоков будет одинаковый футер ввиде картинка+ссылка(смотреть подробнее).
    Ответ написан
    Комментировать