SELECT * FROM `posts`
WHERE 1
ORDER BY `rating` DESC
LIMIT 40,10
Все по порядку как положено (AUTO INCREMENT)и тут посты с ид 5 и 12 удаляются, и - опа, не по порядку (
ALTER TABLE `tablename` ADD `unique_id` VARCHAR(24) NULL , ADD INDEX (`unique_id`);
$id = $_GET['edit'];
здесь $id в итоге может быть вообще пустой, или с шикарным sql инжектом.$get = mysqli_query($db, "SELECT * FROM users WHERE id = '$id'");
можно только надеяться что выше есть объявление $db$str = mysqli_fetch_array($get);
неплохо бы проверить что запрос что-то вернул вообщеif(isset($_GET['edit']))
если это условие не выполняется, переменная $str вообще нигде не будет создана.Я понимаю что эта переменная видна только в if. Как ее вывести?
<?php echo @$dif; ?>
- совсем кривой подход), такой подход оправдан только в ограниченном ряде случаев, например если много переменных могут быть не определены и код нужно рефакторить, но некогда. что заставляет перебирать все 1000 записей, а WHERE id > 1000 LIMIT 10, что не заставляет перебирать все 1000 записейУ вас нет никакого понятия как работают индексы, по этому вы думаете что так будет быстрее. Хотя логика подсказывает что за 20+ лет существования реляционных бд наверняка при необходимости повысить производительность до такой опции бы давно додумались и она была бы распространена, но почему то такого не случилось... Это по тому что достаточно
Как из этой таблицы выбрать историю диалога когда известен id отправителя, например 1
SELECT m.`id`, m.`message`, mr.`message_id` status
FROM `messages` m
LEFT JOIN (
select `message_id`
from `messages_read`
where `user_id` = 111
) mr
ON mr.`message_id` = m.`id`
WHERE m.`chat_id` = 12
но дату и номер сделать не понимаю как
С какими проблемами я могу столкнуться, если решу хранить данные каждого модуля в отдельной базе данных?