Задать вопрос
  • Округление в MySQL полей decimal?

    @neol
    Никакого округления у вас там нет. В вашем запросе выбирается минимальное значение price и первые попавшиеся по остальным полям. Вам нужен запрос типа такого:
    SELECT p.id, p.price, p.code FROM products p
    JOIN 
    ( SELECT product_id, MIN(price) minPrice
      FROM products WHERE price IS NOT NULL GROUP BY product_id
    ) p2
    ON p.price = p2.minPrice AND p.product_id = p2.product_id;
    Ответ написан
    Комментировать
  • Как правильно делать 2 версии сайта (моб, десктоп)?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    Нахрена, а главное - зачем? Современный адаптив позволяет через цсс задать ВСЕ, картинки, стили, расположение блоков, что-то показать, что-то скрыть на определенных разрешениях... Иметь мобильную версию отдельно не рекомендуют и поисковые системы, так как это разбивает трафик на субдомены и еще куча всякого тянется за этим. По этому - медиазапросы, или даже сразу бутстрап или другой адаптивный фреймворк.
    Ответ написан
    8 комментариев
  • Почему не используются площадки для создания сайтов типа Wix?

    @kandrash
    Кратко о себе
    Во-первых кто-то же пишет сам викс?
    Во-вторых есть десятки направлений где он не подойдёт. Развернёте на виксе ВК? Сбербанк-онлайн? Тостер? Озон?

    Не, часть работы он несомненно на себя возьмёт. Простенькие лендинги, магазины и прочее. Но как только вам нужен чуть нестандартный функционал - тут его полномочия всё.
    Ответ написан
    1 комментарий
  • Django или 1С-Битрикс?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Вот стоит ли вообще туда совать свой нос? Как поступить?

    Ох, уж эти разработчики...
    Любят навязывать клиенту не то, что нужно клиенту, закрывая его потребности и задачи, включая возможное масштабирование в будущем, а руководствуясь лишь уровнем знаний в отдельно взятом направлении.
    Если Вы не знаете Битрикс, то за месяц не сделаете проект full. Возможно сделать какой-либо информационный сайт, да и то на уровне инфоблоков и компонентов, а CRM с хорошей админкой как минимум потребует знаний api, а в Битрикс api не очень хорошо документировано.
    Более того, что бы вы не выбрали, наговнокодить можно везде и тогда сайт накроется будь это Битрикс или что-то другое.
    Помимо самого Битрикса, необходимо иметь знания по настройке серверов, оптимизации mysql, nginx. Но это практически везде нужно и к вопросу не относится.
    Отсюда ответ на ваш вопрос:
    Если текущие задачи и будущие удовлетворяют ваши потребности, а вернее потребности клиента, при использовании PostgreSQL + Django + Redis - то нужно использовать его.
    Стоит понимать, что Bitrix Framework это PHP платформа для разработки веб-приложений, и если не обращать внимания на тех, кто просто не умеет его готовить (потому что надо не использовать шаблонное мышление), то это отличная платформа для создания разного рода проектов, будь то интернет-магазин, crm, инфосайт с интеграцией с платежными средствами, доставками, интеграцией 1С и маркетплейсами. Однако, Битрикс больше заточен под Интернет-магазины, и как бы его не ругали (обычно ругают те, кто с Битриксом никак не работает, от силы пару раз видел код 10 лет назад и не сделал ни одного проекта на нем...), для среднего и малого бизнеса альтернатив нет. Те, кто скажут Вордпресс или Опенкарт - ребята, не смешите, на Битриксе без танцев с бубном будут работать доставки, 1с и оплаты, а также ряж выгрузок в маркетплейсы, пока вы ищите модули для опенкарт....или что там у вас... Кеширование, технология композитный сайт и CDN вкупе с хорошо написанным кодом и настроенным сервером - дают достаточно быстрый результат.
    Если Клиенту нужен Битрикс, то стоит найти другого специалиста для решения его бизнес задач, а не навешивать ему Django, только потому что вы его знаете.
    простую crm систему

    А не изобретаете ли вы велосипед?
    1С Предприятие с прикрученной Веб мордой чем не CRM?
    Ответ написан
    1 комментарий
  • Скрипт на js переписать на php?

    DevMan
    @DevMan
    код завязан на браузерные события: переписывать его на пхп нет ни смысла, ни необходимости.
    Ответ написан
    Комментировать
  • Как сделать одинаковый header и footer для всех шаблонов сайта?

    Я делаю общий шаблон .default, а в остальных шаблонах в хедере:
    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();?>
    <?include(S_P_LAYOUT.'/header.php');?>
    <div class="page">
    	<!-- HEADER :: START-->
    	<header class="header">
    		<div class="container">
    			<div class="header__wrapper">
    				<a class="header__logo" href="#"><img src="<?=P_IMAGES?>/logotype.svg" alt=""></a>
    				
    				<?include(S_P_INCLUDES.'/menu-top.php');?>
    				
    				<div class="header__links">
    					<?include(S_P_INCLUDES.'/menu-links.php');?>
    				</div>
    				
    				<button class="hamburger hamburger--spin" type="button" js-hamburger><span class="hamburger-box"><span class="hamburger-inner"></span></span></button>
    			</div>
    		</div>
    	</header>
    	<!-- HEADER :: END-->
    	<div class="page__content">
    		<?$APPLICATION->ShowPanel()?>

    и аналогично в футере:
    какой-то отличающийся код
    <?include(S_P_LAYOUT.'/footer.php');?>

    Соотвественно S_P_LAYOUT - это константа с абсолютным путем к папке шаблона .default

    Это вариант номер один (и вобще говоря вы можете вложить так сколько угодно шаблонов).

    Второй вариант - использовать общие включаемые области во всех шаблонах.
    Ответ написан
    Комментировать
  • Почему БД драйвер Python MySQL Connector работает на порядок быстрее чем в других языках?

    @galaxy
    Навскидку: cursor.executemany() соединяет запросы в один большой INSERT. Остальные драйверы сами этого, видимо, не умеют.

    Думаю, если вы руками соберете multi-row INSERT, то на то примерно и выйдет:
    INSERT INTO tablename (fieldA, fieldB, fieldC, fieldD, fieldE)
    VALUES (a, b, c, d, e),
    (a1, b1, c1, d1, e1),
    (a2, b2, c2, d2, e2),
    ...
    Ответ написан
    4 комментария
  • Является ли запрос безопасным?

    DevMan
    @DevMan
    почитайте о sql-инъекциях в целом, и как с ними бороться в частности.
    все вопросы после этого отпадут.

    конкретно предоставленный код потенциально опасен.
    а жёсткая фильтрация есть только в ваших словах, а не коде.
    Ответ написан
    Комментировать
  • Ошибка в Git как исправить?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Очевидно, админ репы запретил пушить в мастер. Только через pull(или merge) request.
    Ответ написан
    2 комментария
  • Что значит сложность и масштабируемость?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Что значит масштабируемый код?

    Это код который легко "нарастить" - без говнокода и так же модульно, как он и должен быть сделан. Как правило подразумевает под собой использовавшая принципов SOLID. https://avivi.pro/blog/bud-solid/


    Что значит сложность?


    Самый хороший код - это простой код. Читабельный. Где идеи настолько логичны, что понимаются программистами любого уровня, а не только сеньором-помидором.

    Как делается - разбиваются крупные процедуры и методы, на более мелкие, логически структурируя код. Делая его "легким" и поддерживаемым, этим самым упрощая задачу отладки и маштабируемости кода.
    Ответ написан
    Комментировать
  • Какую платформу выбрать для десктопного приложения с учетом поддержки win XP,7,8,10?

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

    Jeer
    @Jeer
    уверенный пользователь
    Единственное, jQuery должен быть подключён раньше, чем ваш скрипт. Вроде, всё
    Ответ написан
    1 комментарий
  • Как увеличить скорость работы MySQLi?

    @d-stream
    Готовые решения - не подаю, но...
    Боюсь, что при такой постановке вопроса - искать надо не компоненты, а нанимать специалиста.
    Ответ написан
    5 комментариев
  • Когда и где можно и нужно добавлять префиксы браузеров(-webkit- -moz- -ms-)?

    Lynn
    @Lynn
    nginx, js, css
    Используйте автопрефиксер.
    Пусть компьютер этим заморачивается https://github.com/postcss/autoprefixer
    Ответ написан
    Комментировать
  • Надёжный SSD и HDD диск?

    Jump
    @Jump Куратор тега Твердотельные накопители
    Системный администратор со стажем.
    Все HDD диски одинаково надежны.
    Их и осталось то несколько производителей.

    Всегда считал WD надёжной маркой и доверял ей.
    Так и есть.

    Вчера сломался WD blue SSD 1Tb не проработав и 2 лет. Битые сектора, невозможность загрузки ОС.
    Надежные диски точно так же ломаются как и ненадежные. При чем тут надежность?
    Все диски ломаются.

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

    Все диски проходят жесткий контроль качества. Но даже жесткий контроль не может гарантировать отсутствие проблем. Он их просто минимизирует.
    Все HDD боятся ударов. Производят их в Китае и на Тайване в основном, потом везут к нам. Контейнер с дисками может упасть с крана при перегрузке - и вся партия будет проблемной.
    Продавец в магазине может уронить диск или целую коробку с дисками - у них у всех будут проблемы. Но он же никому не скажет, он продаст их вам.

    Если информация важная и нужно минимизировать риски ее потерять - делайте бэкапы. Других способов пока не придумали.

    А к дискам надо относится как к расходнику. Выходил срок гарантии - отлично. Сломался раньше срока - сдали по гарантии, купили на эти деньги новый.
    Ответ написан
    5 комментариев
  • Как выдать юзеру на сайте страницу?

    @bqio
    https://bqio.github.io/
    Вы сначала сами поймите, что хотите, научитесь формировать свою идею в текст, а потом спрашивайте здесь, или ищите в гугле.
    Ответ написан
    7 комментариев
  • Как безопасно отправлять пользовательский текст в базу POST запросом?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Перед тем как что-то куда-то добавлять надо сначала разобраться что ты делаешь.
    В частности понять что браузер, веб-сервер, и база данных - это разные вещи, и для каждой нужна своя обработка данных.

    В-первых, POST запросом ничего добавить в базу нельзя.
    База вообще ничего не знает про пост запросы. POST запросом можно отправить текст только в РНР.
    А РНР уже будет добавлять в БД.

    Про HTML база данных тоже ничего не знает. Поэтому "htmlspecialchars" к базе данных не имеет никакого отношения. И делать это для добавления в БД не нужно. Это функцию надо применять при выводе данных в браузер, а не при сохранении в базу данных.

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

    Для безопасного добавления данных в БД из РНР, надо отправлять их отдельно от самого запроса. Это непреложное правило, которое надо соблюдать всегда.
    И не важно - пользовательский у тебя текст, или какой-то другой, POST у тебя запрос, или вообще никакого запроса не было - все эти вещи к работе с БД из РНР не имеют никакого отношения. Важно только то, что данные всегда отправляются в БД отдельно от запроса.
    Для этого надо
    • Заменить все переменные в запросе на специальные маркеры, которые называются плейсхолдеры или параметры, а по сути - просто знаки вопроса
    • Подготовить запрос к исполнению с помощью функции prepare(). Эта функция принимает строку запроса и возвращает экземпляр специального класса stmt, с которым в дальнейшем и производятся все манипуляции
    • Привязать переменные к запросу.
    • Выполнить подготовленный ранее запрос с помощью с помощью execute()

    В mysqli это будет так
    $sql = "INSERT INTO  table (name, text, message, date, rating) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->bind_param("sssss", $name, $text, $message, $date);
    $stmt->execute();

    bind_param() принимает в качестве параметров все переменные, которые должны попасть в запрос, в том же самом порядке, в котором стоят плейсхолдеры в запросе. Но кроме того, сначала в этой функции должны быть указаны типы для всех переменных, в виде строки, где тип переменной обозначается одной буквой. То есть букв в этой строке должно быть ровно столько, сколько дальше будет переменных. К счастью, можно особо не париться с типами и для всех переменных указывать тип "s".

    Но по-хорошему для работы с БД в РНР лучше использовать PDO, Тем более что там колупаться с bind_param не нужно, а можно сразу отправить все данные в execute
    $sql = "INSERT INTO  table (name, text, message, date, rating) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->execute([$name, $text, $message, $date]);

    А дураков, которые сами не знают, как текст в базу сохранить, слушать не надо.
    Ответ написан
    Комментировать
  • В каких языках есть встроенная возможность и синтаксис для удаления определенных методов и/или свойств наследуемых классов при создании класса?

    Такого нет и быть не может, тк это ломает всю концепцию наследования.
    Скорее всего, вы хотите сделать что-то неправильное, раз у вас возникло такое желание.

    UPD: Посмотрел комменты. Если уж хотите взять чужой модуль и скрыть что-то из него, то тут не нужно использовать наследование.
    Ответ написан
    Комментировать
  • Стоит ли использовать Node.js на сервере оплаты?

    dkrylov
    @dkrylov
    Node.js - хотел бы, но останавливает то, что при неотловленном исключении, сервер падает целиком.


    1) Так сделайте так, чтобы исключение отловилось
    2) Так сделайте очередь в бд с транзакциями, и чтобы нода их постепенно оттуда обрабатывала, и записывала статус обработки.
    3) Так повесте логгирование на какое нибудь событие (транзакция не обработана, сервер перезапущен), чтобы в случае проблем, быть вовремя уведомленным

    P.S. Что PHP, что NodeJS, что Java, успешно справиться с Вашим заданием, если всё корректно задизайнить.
    Ответ написан
    Комментировать