Пиша формуляр за търсене на обикновен форум, но не мога да намеря решение, за да избера само полетата, които ме интересуват. Таблицата на форума, наречена „Съобщения“ (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, получавам, повтаряйки съдържанието в цикъла 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, когато техният брой се увеличи след максималните съобщения за номер на страница. Благодаря предварително за всяка помощ.