у меня есть файл PHP который записывает все входящие POST запросы в БДОх, я уже хочу посмотреть на этот сайт... Так красиво работа с пдо еще нигде не применялась. Форма ничего не требует, а значит можно не заполнять, собсно по этому и запросы пустые. В принципе надо сказать спасибо что пустые, а не с инъекциями...
Как можно вывести точно такой же результат, но с повторами ID 2, например?Если с самого начала проектировать бд в нормальной форме, а не то что получилось, то задача вполне нормально решается. Создается таблица отношений наборов к блюдам, и объединяется как многие ко многим, и всё будет нормально выбираться. А кажущаяся "оптимальность" хранения идентификаторов строкой в одном поле - ошибка почти всех новичков, тем не менее это отвратительная практика, рожденная некомпетентностью и ленью. Меняйте структуру, пока не поздно, на этапе разработки это сделать проще, чем когда уже внесете кучу данных в рабочий говнопроект. Делайте сразу хорошо, чтобы потом не страдать.
Есть таблица, кликаем на заголовок таблицы. идет сортировкасоставной индекс если будут использоваться много полей, и отдельные если каждое из полей будет одиночной сортировкой.
Сколько по времени должны выполняться все запросы на одной странице?В общем случае запросы должны выполняться за время меньше секунды, близкое к 1 секунде уже считается весьма высоким. Исключения составляют приложения с очень сложной логикой, где ожидание ответа не сильно меняет ценность результата. Например на сайте новостей 1 секунда это много, а на приложении с миллиардами записей статистики по мировым продажам жвачки в розницу для планирования расширения сети продаж с 30 объединениями/группировками/дистинкт выборками надцать секунд или даже минут это норм, так как задача другая совершенно.
Как правильно составить запросы, сначала нужно исследовать запрос при помощи explain, а потом писать в php?сначала пишется запрос с требуемым результатом, затем его можно оптимизировать. Так как оптимизация редко идет по пути изменения самого запроса, переписывать его не надо, а explain подскажет где можно подкрутить что-то на уровне индексов/памяти, код при этом вообще не трогается. Да и по большому счету 99% типовых задач не пишутся руками, а пускаются через модель/орм.
Нужно составлять запросы так, чтобы explain: type<>ALLЕсли вам нужен именно конкретный запрос с конкретным набором выходных данных, менять вы его не будете, логично что крутить вы можете только структуры данных и индексы, ну может еще что-то в настройках самого сервера.
Подскажите, пожалуйста, хороший ресурс про создание индексов.Дока по используемой бд достаточно хорошо описывает работу с индексами. Более подробно можно спросить ребят профильно занимающихся работой с бд, Akina, Лентюй ...
да, как его правильно оформитьКак обычный инсерт, единственно надо учесть кодировку и достаточную длину поля в таблице. В базе (очевидно) нельзя напрямую хранить объекты/массивы какого-либо языка, по этому просто добавляете строковое значение.
и надо ли что то делать с массивом перед этим?Естественно, вы же не работаете с программной средой, а любое хранилище общего назначения не умеет работать с чужими структурами, по этому хранят сериализованные данные, в вашем случае массив надо будет сериализовать через JSON.stringify() (ну и парсить при вытаскивании из бд естественно).
ini_set('error_reporting',E_ALL); // выводим все ошибки и варнинги
ini_set('display_errors', 1);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // все ошибки соединениея и бд выводим
$mysqli = new mysqli("localhost", "root", "", "testtest");
$sth = $mysqli->prepare("SELECT * FROM test_eisenck WHERE id=?");// бинд не поддерживает ничего кроме "?"
...
$arResult = $sth->fetch(); // читаем про фетч, а PDO::FETCH_ASSOC вообще от другого драйвера
мне надо что бы с переменными sql, тоесть не указывать самому дату, а надо что бы в запросе автоматом курдейт был, т е сегодня.будет что-то типа
SELECT *
from `table`
where DATE(dateTimeField) = DATE(now()),
and TIME(dateTimeField) >= '18:30'
and TIME(dateTimeField) <= '19:00'
SELECT * FROM rooms
WHERE id NOT IN (
SELECT room_id
FROM `bron`
WHERE '2022-03-04 13:00:00' <= end
AND '2022-03-04 13:00:00' >= start
OR '2022-03-06 11:00:00' <= end
AND '2022-03-06 11:00:00' >= start
)
GROUP BY `type`
ORDER BY `id`
Скоро с этим MySQL с ума сойду...Да, с таким подходом лучше бросайте это грязное дело...
Ничего не понимаю!Ну так чтобы что-то понимать, нужно смотреть что происходит, знать что содержится в переменных и читать ошибки. Чтобы смотреть что происходит нужно использовать var_dump или ставить xdebug, чтобы знать что в переменных - нужно понимать какие переменные смотреть. В том числе знать почему возникают варнинги и все их исправить.
Подскажите, в чем может быть проблема? Спасибо!!!Подсказываю: Файлы хранятся в файловой системе. Хранить файлы в бд это палка о двух концах, оба из которых засунуты в ж...