Ответы пользователя по тегу MySQL
  • Как вывести нужные значения?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если страницы строятся по типу деревьев - от 0 - корень и далее с вложенностью - для каждой группы добавьте дополнительный ид группы, если дерево страниц не будет больше 100 нод допустим, то выбираем все ноды с нужным груп_ид, а далее средствами пыха делаем перебор и строим цепочку.
    Ответ написан
    Комментировать
  • Как правильно делать выборку со счетчиками?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Собсно в чем проблема? У вас виснет сервер, не хватает соединений к базе? Пользователи прут стремительным домкратом и сервер не успевает отдавать незакешенные запросы?
    Если нет - какие проблемы? Так есть и так должно быть, выборка из таблиц с актуальными данными всегда будет происходить из базы напрямую, если джоин не включает 4 таблицы по овер 10 мильёнов записей - все будет работать быстро, ну, если структура верная. А если нет - смотрите как оптимизировать базы, кеш здесь вообще как бы ниочем.
    Ответ написан
    2 комментария
  • Как оптимально организовать хранение и редактирование настроек сайта?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    База в активном использовании или можно остановить работу на часик?
    Насколько тяжелые записи в таблице?
    Насколько сложная обработка на клиенте?

    По 10 записей это с утра до утра будете фигачить, думаю не меньше 200-500 записей за раз, а в идеале 1000 норм. будет. Ибо больше времени на соединение потратите чем на выборку и инсерты.
    Ответ написан
  • MYSQL ошибка 2002 как решить проблему?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    >>See system logs and 'systemctl status mysqld.service' for details.
    >>Loaded: error (Reason: No such file or directory)
    при падении грохнулось что-то из файлА, переустановите, только базы отдельно слейте.
    Возможно закончилось место или квота на дисковое пространство.
    Ответ написан
  • Как пофиксить медленную запись в БД MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    тут немного почитать, ну и тут есть по теме, думаю разберетесь.
    Ответ написан
  • Загрузка файла на сервер?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ничего не мешает поменять метод на post. В коде изменится только $_GET на $_POST переменные.
    Перед заливкой в базу обычно неплохо проверять данные на "качество", загружать данные в базу прямо из пост/гет - плохая практика.
    Подумайте о том как будут именоваться файлы, как их структурировано хранить и привязать к определенной записи.
    Как избежать дублей и как удалять их при удалении записи.
    Удачи )
    Ответ написан
    Комментировать
  • Как оптимизировать запрос mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Какой тип поля имеет o_mark? и какова его длинна если это текстовое поле? Если запрос занимает более нескольких секунд - скорее всего не настроен индекс по этому полю.

    Таблица с менее 1 000 000 записей в принципе не является большой, в данном случае очевидно есть проблема с настройкой.

    Посмотрите не избыточна ли длинна поля, если поле помещается в 30 символов - ставьте 30, не надо делать "с большим запасом" индексные поля. Это нагружает выборку и раздувает индекс.
    Ну и собсно создайте индекс на поле.
    Ответ написан
    3 комментария
  • Не работают сессии php, в чем дело?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    как у вас все работает? city.php инклудится в index?

    ini_set('session.gc_maxlifetime', 3600*24*30);
        ini_set('session.cookie_lifetime', 3600*24*30);
        session_start();

    Сначала настраиваем сессию, потом вызываем.

    session_destroy(); убираете, зачем она там вообще? Если вы делаете инклуд, то вы сначала стартуете сессию, потом ее грохаете. Какой смысл, если unset($_SESSION['locality']); должно все что надо сделать.

    Если перед session_start() будет что - либо выводиться(хтмл или ошибка) сессия стартовать не будет. То же касается и session_destroy();

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

    Если это все у вас отдельные страницы(то есть есть еще страницы кроме index.php) во всех в начале должно быть session_start();, иначе сессии работать не будут. Эта директива создает связь куки в браузере и сессионной записи на сервере, без нее механизм сессий работать не будет, т.е. сессию нужно каждый раз "перестартовать".
    Ответ написан
    2 комментария
  • Отправка данных по ссылке, в чем может быть проблема?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    раз по первой ссылке происходит упдэйт - логично что не приходят значения из реврайт руле во втором случае. Натыкайте print_r($id) и print_r($rat) и добавьте print_r($_POST); Все сразу станет понятно, какие переменные и как получаются. Вам уже указали варианты, можете воспользоваться ими или соорудить свой костыль.
    Ответ написан
    Комментировать
  • Почему не добавляется весь текст в БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Код не представлен, но в целом в таком случае могут быть только несколько проблем:
    1) Смотреть настройки php, max_post_size
    2) на стороне сервера смотреть или дошел пост запрос, если дошел - уже проверять запрос в базу, как отрабатывает запрос
    3) возможно в тексте есть спецсимволы, а ваш код не предусматривает экранирование.
    4) Uwe_Boll тоже мысль написал, при отправке get есть ограничение связанное с протоколом http, 254 символа в строке урл.
    Ответ написан
    3 комментария
  • Проблема с записью Session php mysql?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Это просто каша из символов, нифига неясно потому что глаза можно сломать, и сами теперь разобраться не можете, т.к. код просто нечитаемый и невозможно понять где хвост где грива. Код как будто из середины 90х. mysql_ уже давно никто не использует, т.к. depricated, никто это г разгребать не будет, перепишите нормально если вам хочется чего-либо достичь в программировании. Не мучайте людей такими простынями гкода.
    Ответ написан
    Комментировать
  • [PHP,SQL, update] Как правильно сделать update строки со спецсимволами?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    pdo, placeholders, prepared statements и другие страшные слова из мануала.
    Ответ написан
    3 комментария
  • Как лучше хранить временные данные?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вариант с мускулем не самый лучший, все же это не очень быстрое хранилище, не стоит выбирать технологию только из за того, что Вы с ней хорошо знакомы. Посмотрите в сторону Redis, он очень прост, имеет структуру key=>value, как мемкеш, но и есть ряд плюшек, например инкрементные поля, время жизни(ну это и меме есть) и еще немного разных бонусов. ОЧЕНЬ легко интегрируется, я за 15 минут написал свой адаптер, это вместе с чтением документации. Я думаю это то что вам нужно.
    Ответ написан
    2 комментария
  • Как правильно спроектировать БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Правильный вариант: для записей хранить id, groupid - общий идентификатор для группы материалов на разных языках, languageid - поле языка конкретной записи. В остальном записи идентичны.
    Ответ написан
    Комментировать
  • Как сделать корректный запрос Mysqli?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    правильнее так:
    $param = $name;
    $stmt = $mysqli->prepare("SELECT topic_id FROM prefix WHERE title LIKE '%?%'");
    $stmt->bind_param("s", $param);
    $stmt->execute();
    Ответ написан
    Комментировать
  • Как перебрать данные из массива и найти на каждое значение цену из БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    если не понятно как выбрать -
    $sql = "select * from `price` where `itemid` in (" . implode(",", $ids) . ")";
    Ответ написан
    Комментировать
  • Как корректней реализовать историю?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Таблица с менее чем 10 миллионами записей большой не является, выборки по ней при наличии индексов занимают доли секунд. Так что не парьте голову, пишите инсерты, делайте селект с сортировкой по дате, это нормальная практика. Люди хранят статистику посещений, с временем входа, переходами по страницам и т.д., там за день набегает у некоторых под четверть миллиона записей.
    Ответ написан
    Комментировать
  • Почему count возвращает одинаковые данные не зависимо от условий?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    а полученный запрос после конструктора не смотрели? Иногда помогает - визуально оценить что наваяли если все мысли кончились )
    Ответ написан
    Комментировать
  • Как правильно обработать ответ?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Вообще вижу первый раз код на го, но мне кажется что здесь какая-то лажа.
    Что нужно? понять были ли совпадения в базе? Так если в rows что-то попало(в смысле запрос не вернул пустое множество) то в базе есть совпадения, иначе пишем совпадений не найдено.

    UPD:
    В вашем случае больше подойдет так:
    id := 123
        var username string
        err := db.QueryRow("SELECT username FROM users WHERE id=?", id).Scan(&username)
        switch {
        case err == sql.ErrNoRows:
                log.Printf("No user with that ID.")
        case err != nil:
                log.Fatal(err)
        default:
                fmt.Printf("Username is %s\n", username)
        }

    Это из официального мануала.
    Ответ написан
    Комментировать