Endeksin bir çeşit olarak kullanılır sadece belirli satırları seçmek için bir MySQL sorgu değiştirme

0 Cevap php

Ben basit bir forum için bir arama formu yazıyorum, ama beni ilgilendiren tek alanları seçmek için bir çözüm bulmak için yönetemez. "Mesajlar" (MySQL) adlı forum tablo, bu yapıyı kullanır:

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

Asıl sorun, ben kullanıyorum php forum sayfasında "ebeveyn" olarak FirstMsg 0 ile iletileri tanımak ve 0 ile birine yanıt olarak 0'dan farklı ve FirstMsg ile olanları kendi FirstMsg eşit MessageID olmasıdır.

es. MessageID 201 201 yayınlamak için yanıt olarak görülecektir 202 ve 203 ebeveyn olduğu gibi 201 ile satır.

Bir MySQL sorgusu ve php ile kolayca içerik almak:

$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)) {

}

Örneğin, ben ise döngüde içeriği yankılanan olsun Rose arıyor:

201 - 0 - Jack and Rose
202 - 201 - Rose
203 - 201 - Jack, Rose, David
205 - 204 - Rose
206 - 0 - Rose and David

I, bir sorgu ile, sadece "üst" hatta "Rose" unsurları, edilir ne de ancak gibi cevaplardan biri, içinde ana mesajında ​​mevcut almak gerektiğinde:

201 - 0 - Jack and Rose
204 - 0 - Bill
206 - 0 - Rose and David

Sadece MySQL sorgu değişen bunu yapmak mümkün mü? Sorgu kendisi php tarafından oluşturulan "sayfalar" arasında gezinmek için, aynı sayfaya arasında kullanılır çünkü o gerektiğinde onların sayısı arttıkça sayfa numarası başına maksimum mesajlardan sonra. Herhangi bir yardım için şimdiden teşekkür ederiz.

0 Cevap