Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie rekordów od określonej daty
Forum PHP.pl > Forum > Bazy danych > MySQL
djiras1
Witam,

Chciałem usprawnić swoje forum (phpbb by przemo) o modyfikację pokazującą użytkowników, którzy napisali najwięcej postów od określonej daty... W mysqlu jestem początkującym i wymodziłem takie coś:

Kod
<?

ŁĄCZĘ SIĘ Z BAZĄ

$wynik = mysql_query("SELECT COUNT(poster_id) AS ile,poster_id,post_time FROM forum_posts GROUP BY poster_id ORDER BY ile DESC");
while($r = mysql_fetch_assoc($wynik)) {

$czas = $r['post_time'];
if($czas>1243792800) {


  $much = mysql_query("SELECT * FROM forum_users WHERE user_id=".$r['poster_id']."");
  $ikus = mysql_fetch_array($much);



echo "<a href=\"profile.php?mode=viewprofile&u=".$r['poster_id'].".html\">".$ikus['username']."</a> - ".$r['ile']."<br>";
}
}

?>



Najpierw policzyłem kto ma najwięcej postów i chcę to wyświetlić malejąco, ale od 1 czerwca...

Dlatego dodałem ten fragment kodu:

Kod
$czas = $r['post_time'];
if($czas>1243792800) {


1243792800 to 1 czerwca 2009r. i chce żeby pokazywała się klasyfikacja posterów od tego czasu, i pokazuje się co prawda, ale są to użytkownicy, którzy dołączyli do forum właśnie po tym czasie...

Nie wiem jak to zmienić, proszę o pomoc smile.gif
phpion
Możesz to zrobić bezpośrednio na poziomie bazy danych, bez ingerowania w kod PHP. Zmień swoje zapytanie na:
  1. SELECT COUNT(poster_id) AS ile,poster_id,post_time FROM forum_posts WHERE post_time >= UNIX_TIMESTAMP('2009-06-01') GROUP BY poster_id ORDER BY ile DESC

Dodatkowo zastosowałem tu funkcję UNIX_TIMESTAMP aby przyjemniej operować na datach.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.