PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (25): В начало « ... 7 8 9 10 [11] 12 13 14 15 ... » В конец
Найдено сообщений: 374
VestCoastman
Отправлено: 08 Августа, 2013 - 15:36:51 • Тема: Хранение и парсинг BB-кодов • Форум: Вопросы новичков
Ответов: 14 Просмотров: 560
Мелкий пишет: VestCoastman пишет: Не совсем понял суть
Суть - держите 2 поля в таблице. Одно - исходное сообщение, второе - обработанное и пригодное к немедленному выводу.
А для чего хранить обработанное? Если на выводе его ждет htmlspecialchars(), которая не позволит выводить html
VestCoastman
Отправлено: 08 Августа, 2013 - 14:53:12 • Тема: Хранение и парсинг BB-кодов • Форум: Вопросы новичков
Ответов: 14 Просмотров: 560
DeepVarvar пишет: Сделать в базе два поля - одно с сорцом, который будет редактироваться, если понадобится, другой уже с пропарсеными данными - эти будут выводиться на страницу.
Так будет минимальная нагрузка и максимальное удобство.
А на то что БД чутка вырастет в размерах можно наплевать.
Не совсем понял суть(структуру построения), но меня это заинтересовало, т.к. стремлюсь к минимальной нагрузке.
Мелкий пишет: Какая проблема, если у вас BB?
Делаете htmlspecialchars, обрабатываете BB. Никакой проблемы.
Ну да, чуть-чуть ошибся, но в таком случае, нагрузка будет огромная, это ж пока одно сообщение preg_replace, пока другое. А если сообщений, например, 50 на странице?
VestCoastman
Отправлено: 08 Августа, 2013 - 04:06:30 • Тема: Хранение и парсинг BB-кодов • Форум: Вопросы новичков
Ответов: 14 Просмотров: 560
Как правильней обращаться с бб кодами?
1. Парсить при отправке в базу
- т.е. в базу идет html
2. Парсить при выводе
- т.е. в базу идут бб коды
В обеих случаях появляется проблема с htmlspecialchars(), что делать с этой функцией, ведь нужна защита от xss.
VestCoastman
Отправлено: 06 Августа, 2013 - 17:27:46 • Тема: Джоины • Форум: Вопросы новичков
Ответов: 15 Просмотров: 578
Дабы не создавать новую тему, подскажите, как в таком запросе сделать сортировку?
CODE (
SQL ):
скопировать код в буфер обмена
SELECT *
FROM `sections`
LEFT JOIN `categories`
ON `sections` . id = `categories` . sid
WHERE `categories` . id = '2'
AND `sections` . access <= '10'
AND `categories` . access <= '10'
Естественно пробовал дописать в конце order by, вернуло пустой результат.
(Добавление)
Всё, нашел ошибку)
VestCoastman
Отправлено: 05 Августа, 2013 - 13:22:00 • Тема: Джоины • Форум: Вопросы новичков
Ответов: 15 Просмотров: 578
imya пишет: В чём вы сомневаетесь? Запрос корректный
Ясно. Спасибо.
Просто усвоил для себя правило, что если код рабочий, то это не всегда значит, что он написан правильно.
VestCoastman
Отправлено: 05 Августа, 2013 - 04:07:48 • Тема: Джоины • Форум: Вопросы новичков
Ответов: 15 Просмотров: 578
Получилось составить запрос.
CODE (
SQL ):
скопировать код в буфер обмена
SELECT *
FROM sections
LEFT JOIN categories
ON sections. id = categories. sid
LEFT JOIN topics
ON categories. id = topics. cid
WHERE topics. access <= 10
AND sections. access <= 10
AND categories. access <= 10
Со стороны php всё выводится как хотелось, но со стороны правильности сомневаюсь.
Верен ли запрос, если учесть критерии выше?
VestCoastman
Отправлено: 04 Августа, 2013 - 23:33:53 • Тема: Джоины • Форум: Вопросы новичков
Ответов: 15 Просмотров: 578
imya пишет: Получается в одной категории\секции несколько тем, тогда так:
CODE (
SQL ):
скопировать код в буфер обмена
SELECT *
FROM topics
LEFT JOIN sections
ON sections. id = topics. sid
LEFT JOIN categories
ON categories. id = topics. cid
WHERE topics. access <= 10
AND sections. access <= 10
AND categories. access <= 10
Выводится информация из категорий, а тех полей, которых нету в categories, берутся из topics, а должно всё выводиться из topics. Примерно вот так - http://i[dot]imgur[dot]com/xxqGP81.png
VestCoastman
Отправлено: 04 Августа, 2013 - 23:13:05 • Тема: Джоины • Форум: Вопросы новичков
Ответов: 15 Просмотров: 578
imya пишет: CODE (
SQL ):
скопировать код в буфер обмена
SELECT *
FROM topics
JOIN sections
ON sections. id = topics. sid
JOIN categories
ON categories. id = topircs. cid
WHERE topics. access <= 10
AND sections. access <= 10
AND categories. access <= 10
Проверьте, пожалуйста.
Выводит, дважды, название одной категории, т.е. title, а должны выводиться топики.
Скниншот запроса в sql - http://i[dot]imgur[dot]com/FzF0CWd.png
VestCoastman
Отправлено: 04 Августа, 2013 - 22:50:19 • Тема: Джоины • Форум: Вопросы новичков
Ответов: 15 Просмотров: 578
Под связями я предполагаю определенные идентификаторы связи одного поля с другим? Они есть. (Форумная структура)
sections
id | title | access
categories
id | title | access | sid
topics
id | title | access | sid | cid
sid,cid - sections id,categories id соответственно.
Нужно выбрать все поля из таблицы topics где access <= 10 как в таблице topics, так и в таблицах categories, sections.
VestCoastman
Отправлено: 04 Августа, 2013 - 21:25:57 • Тема: Джоины • Форум: Вопросы новичков
Ответов: 15 Просмотров: 578
EuGen пишет: Тогда делать JOIN по основному условию, а в WHERE добавить условия на неравенство
Не совсем понял. Можно пример? (В джоинах не разбираюсь)
VestCoastman
Отправлено: 04 Августа, 2013 - 18:54:45 • Тема: Джоины • Форум: Вопросы новичков
Ответов: 15 Просмотров: 578
EuGen пишет: Или следует уточнить, что значит "совпало" (ведь у Вас неравенство)
Т.е. если в таблице topics поле access меньше или равно 10, то и в таблицах sections и categories поле access должно быть так же меньше или равно 10
VestCoastman
Отправлено: 04 Августа, 2013 - 18:45:10 • Тема: Джоины • Форум: Вопросы новичков
Ответов: 15 Просмотров: 578
Помогите составить запрос.
Есть 3 таблицы: sections, categories, topics.
Есть обычный запрос
Поле access имеется так же в таблицах sections и categories.
Как переделать этот запрос так, используя JOIN, чтобы access<='10' совпадало и с таблицей sections и с таблицей categories?
Страниц (25): В начало « ... 7 8 9 10 [11] 12 13 14 15 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB