Я пишу форму поиска для простого форума, но мне не удается найти решение, чтобы выбрать только те поля, которые меня интересуют. Таблица форума с именем «Сообщения» (MySql) использует следующую структуру:
MessageID - FirstMsg - Content
201 - 0 - Jack and Rose
202 - 201 - Rose
203 - 201 - Jack, Rose, David
204 - 0 - Bill
205 - 204 - Rose
206 - 0 - Rose and David
207 - 206 - David
Основная проблема заключается в том, что используемая мной страница форума php распознает сообщения с FirstMsg 0 как «родительские», а сообщения с FirstMsg, отличающиеся от 0, - как ответы на сообщение с 0 и MessageID, равным их FirstMsg.
ы. строка с 201 в качестве MessageID 201 является родительской для 202 и 203, которые будут рассматриваться как ответы на сообщение 201.
С помощью MySql-запроса и php я легко получаю содержимое:
$MySql = "SELECT * FROM Messages WHERE Content LIKE '%$Search%'" ORDER BY Date DESC LIMIT 1, 30";
$Result = mysql_query($MySql);
while($rs = mysql_fetch_array($Result)) {
}
Например, при поиске Rose I, повторяя содержимое в цикле while:
201 - 0 - Jack and Rose
202 - 201 - Rose
203 - 201 - Jack, Rose, David
205 - 204 - Rose
206 - 0 - Rose and David
Когда мне нужно получить с запросом только «родительские» элементы, даже «Роза», они отсутствуют в родительском сообщении, а только в одном из ответов, например:
201 - 0 - Jack and Rose
204 - 0 - Bill
206 - 0 - Rose and David
Можно сделать это, изменив только запрос MySql? Мне это нужно, потому что сам запрос используется на одной и той же странице для перемещения между «страницами», генерируемыми php, когда их количество увеличивается после максимального количества сообщений на номер страницы. Заранее спасибо за любую помощь.