mam taka tabele np nazwa: "forum" i pola:
- Id
- Nick
- Data
- Godzina
- Grupa
czy pole Godzina to typ TIME, ja bym raczej połączył pole data z godziną i zrobił pole typu DATETIME lub TIMESTAMP
Teraz chce zrobic takie zapytanie aby zaznaczyc nick osoby w danej grupie np. 1 , 2 itd... o najblizszej dacie i godzinie.
Np.
ID Nick data Godzina grupa
1 Glina 18.08.2003 17:04 1
2 Mario 17.08.2003 16:56 1
3. Sancho 18.08.2003 17:00 1
4. Glina 17.08.2003 16:00 2
Wynikiem ma byc dla grupy 1: Glina bo jest to najswiezsze pole (data i godz najblizsza aktualnej) i dla 2 : Glina bo to juz inna grupa
Da sie to zrobic jednym zapytaniem ?
jeżeli chodzi o osoby które z tego co zrozumiałem mają najajtualniejsza datę, to wybierz dane z tabeli posortuj tak:
ORGER BY grupa, data, godzina
nastepnie zrob pętle która przejdzie cały zestaw rekordów i wpętli przypisujesz do zmiennej pole grupa i ID i przy przejściu do każdego kolejnego sprawdzasz czy grupa równa się tej grupie w zmiennej zmiennej, jeśli nie to ID to w zmiennej jest ostatnim dodanym userem w grupie, nie wiem czy opisałem to dostatecznie jasno więc przykład pętli:
[dopisane]Skaleczyłem powinno to wyglądać tak:
[code]
$grupa = $wiersz[grupa];
while($wiersz = mysql_fetch_array($wynik)){
$dopisane = "nie"
if ($grupa <> $wiersz[grupa]) {
echo "ostatni user w grupie ", $grupa, "to: ", $id;
$grupa = $wiersz[grupa];
$dopisane = "tak"
}
$id = $wiersz[ID];
}
if ($dopisane == "nie") {
echo "ostatni user w grupie ", $grupa, "to: ", $id;
}
[/code]
Oczywiście musisz wziąć pod uwagę, że jeżeli będzie tylko jeden user w grupie ostaniej jak w twoim przykładzie to się go nie dopisze... a;e z tym sobie powinieneś dać radę...