Елена Б.
6863 сообщения
#14 лет назад
Цитата ("WebDesignStudio"):
mysql_list_fields - список полей таблицы.

О, это для меня ново. Спасибо за наводку, буду вникать.
Евгений О.
2989 сообщений
#14 лет назад
Лучше вынести это в хранимую процедуру. Тогда все можно будет выполнить в один запрос. Для примера можно вот здесь посмотреть
Андрей К.
6 сообщений
#14 лет назад
Пример на MySQL

SELECT * FROM `dle_post` WHERE IF((SELECT COUNT(*) FROM `information_schema`.`COLUMNS` WHERE `information_schema`.`COLUMNS`.`TABLE_NAME` = 'dle_post' AND `information_schema`.`COLUMNS`.`COLUMN_NAME` = 'autor' AND `information_schema`.`COLUMNS`.`TABLE_SCHEMA` = 'rabotnik_cdl' = 1, (`autor` <> 1), 1)

где
rabotnik_cdl - имя бд
dle_post - имя таблицы
autor - имя колонки

Если условие IF выполняется (проверяем существует ли у такой бд и таблицы нужная колонка), тогда в WHERE идёт конструкция (`autor` <> 1), в противном случае - идёт конструкция (1) которая выполнится всегда.

Маразм, но автор такое хотел...
Елена Б.
6863 сообщения
#14 лет назад
Для того, чтоб обратиться к information_schema нужно новое соединение создать, так ведь?
фтопку
Ладно, ребят, всем спасибо, проехали. Оставила как было, убедили
Сергей К.
1649 сообщений
#14 лет назад
floppox, чем вас мой способ не устраивал?
Елена Б.
6863 сообщения
#14 лет назад
Ну, это все равно еще один запрос.
Я такой вариант рассматривала, только с запросом "Show full columns".
Но подумала, что скорее всего неопубликованных записей будет не больше 3-х процентов, поэтому взвалила это дело (проверку поля) на шаблонизатор.
Хотя неудобно, что в нескольких местах придется проверять.
Собственно, начались раздумья с того, что в шапку добавила пять последних загруженных картинок, а на следующий день заметила, что они выскакивают мимо премодерации (лоханулась).
Все-таки хочется упростить себе будущее. Но посылать ради этого лишний запрос?
Все-таки к лишнему полю во всех таблицах я больше склоняюсь.
Дмитрий Засядько
87 сообщений
#14 лет назад
А заранее не известно количество и имена таблиц? Если таблицы создаются программно, может стоит их именам присвоить суффиксы или префиксы соответствующие. И на основании этого определять - есть ли в таблице поле и строить запрос.
Андрей Халецкий
3562 сообщения
#14 лет назад
Прекратите подметать ломом, это неудобно и не эффективно =)
Елена Б.
6863 сообщения
#14 лет назад
Цитата ("segoddnja"):
А заранее не известно количество и имена таблиц? Если таблицы создаются программно, может стоит их именам присвоить суффиксы или префиксы соответствующие. И на основании этого определять - есть ли в таблице поле и строить запрос.

Дело в том, что это не логично. Таблицы подобны и уже выделены среди других. Просто в одних нужна премодерация, а в других нет. И если учесть, что заказчику в любой момент может прийти в голову добавить премодерацию всюду, то Цитата ("floppox"):
Все-таки к лишнему полю во всех таблицах я больше склоняюсь.
. Вот еще один аргумент только что нашла...