Если я понимаю, этот запрос правильно (вы немного света на детали), то вам нужно использовать несколько компонентов для достижения своей цели:
Two sql-запросы (один для заголовка таблицы и один для тела таблицы) Некоторые php или другой язык сценариев для отображения ваших результатов в виде html.
Ваш первый запрос будет просто вернуть имена полей, фильтруется пользователем и категории:
select ID, FieldName from Fields where ForUser = 'some_user' and ForCategory = 'some_category' order by ID;
В вашем PHP или другой код, вам необходимо перебирать результаты и отображать каждый результат, завернутые в HTML теги, например:
echo '<table><tr>';
$fields = @ mysql_query ("select ID, FieldName from Fields where ForUser = 'some_user' and ForCategory = 'some_category' order by ID;", $connection);
while ($fields_result = mysql_fetch_assoc($fields)) {
echo '<th>' . $fields_result['FieldName'] . '</th>;
}
echo '</tr>';
Затем запустите второй запрос SQL, чтобы вернуть содержимое:
select
FieldContent
from
Content c join
Fields f on
c.ForField = f.FieldName and
c.ForUser = f.ForUser and
c.ForCategory = f.For Category
where
f.ForUser = 'some_user' and
f.ForCategory = 'some_category'
order by ID;
И аналогичным образом перебираем результаты в php для построения строк содержимого в таблице.
Обратите внимание, что я заказываю на ПК в таблице полей, чтобы гарантировать, что содержимое возвращается в том же порядке, что и поля. Этот подход может быть недостаточным, вам может потребоваться добавить поле «последовательность», если вам нужен конкретный порядок полей.
Также обратите внимание на мой предыдущий комментарий о том, что вам следовало бы пересмотреть структуру базы данных. Вам не нужно повторять все поля в таблице «Контент», вы можете просто добавить внешний ключ, ссылающийся на идентификатор записи поля.
Затем опубликуйте, что потратил и трехчасовой код. –
У меня больше нет идеи ... Я искал Google, но никаких результатов по моей проблеме. –
Я бы поставил под сомнение вашу структуру данных, для начала. Почему бы не использовать Fields.ID в качестве внешнего ключа в таблице Content, а не повторять имя поля, ForUser и ForCategory в таблице Content (что, как я полагаю, вы делаете). Это поможет, если вы можете предоставить некоторые примеры данных в sqlfiddle.com –