poster of the day (query)

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Gebruikersavatar
martijnkooi
Berichten: 4
Lid geworden op: 28 jun 2003, 18:04
Locatie: Druten
Contacteer:

poster of the day (query)

Bericht door martijnkooi » 28 jun 2003, 18:16

hallo... ik heb een vraagje..

Ik ben bezig een query te bouwen om daarmee de poster of the day (month, year) naar boven te toveren.

Ik heb alleen het volgende probleem..
Als ik in de database kijk naar de posttime rij kan ik niet achterhalen hoe de posttime wordt opgebouwd...

op moment van schrijven is dit de meest actule posttime: 1056819886

het lijkt erop dat er een standaard tijd gedifieerd is en daar het aantal seconden bovenop geteld zijn, maar is dat ook zo, en...

...hoe krijg ik dat teruggeteld naar de dag van vandaag???

Ik heb een portal fraaien van PHPNUKE 6.5 met PHPBB 2.04 voorheen met phpnuke6.0 en Splatt 4.0 (daar was de datum opbouw 2002-10-29 21:08 ) de query is dan een stuk eenvoudiger:

$today = getdate();
$day = $today["mday"];
if ($day < 10) {
$day = "0$day";
}
$month = $today["mon"];
if ($month < 10) {
$month = "0$month";
}
$year = $today["year"];
$tdate = "$year-$month";

$result=sql_query("SELECT * FROM ".$user_prefix."_users where (post_time LIKE '%$tdate%') ORDER BY user_posts DESC LIMIT 0,5", $dbi);

please help....

Gebruikersavatar
WebSiteNet
Berichten: 6524
Lid geworden op: 20 okt 2003, 16:56
Locatie: Wieringerwerf
Contacteer:

Bericht door WebSiteNet » 28 jun 2003, 19:09

die 'onregelmatige cijfertjes' is het aantal seconden verstreken sinds epoch.
PHP.net schreef:the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).
Hoe kan je dat naar een 'leesbare' datum veranderen? nou simpel: ik neem aan dat je de functie date met de varianten kent. in het eerste attribuut zet de de 'code' voor de datum en in de tweede de tijd .(gemaakt met de functie time.) als je topics van het afgelopen uur wil queryen(werkwoord?) voer je dit uit(uit m'n hoofd):

Code: Selecteer alles

mysql_query("SELECT * FROM phpbb_topics WHERE time > " . time() - 3600 . "");
snapje het een beetje?

Gebruikersavatar
martijnkooi
Berichten: 4
Lid geworden op: 28 jun 2003, 18:04
Locatie: Druten
Contacteer:

Bericht door martijnkooi » 29 jun 2003, 14:08

Bedankt voor je snelle antwoord..

ik begrijp het (nog) niet helemaal.. maar :thumb: toppie..

Alleen begrijp je mijn vraag niet helemaal goed....

Ik wil eigenlijk weten...

Welke poster_id (user) de laatste 24 uur het vaakst een topic beantwoord heeft... eigenlijk dus het aantal keer dat een 'epoch-time' voorkomt binnen de door mijn gestelde normen..

Ik denk dat ik dmv array de datum moet terug herleiden naar (onze) gewone datumnotatie.. dan kan ik eerder gesommeerde query hopelijk wel (deels) gebruiken.

Maar heeft niemand nog het idee gekregen om iets te bouwen waarmee de meest-actieve-gebruiker van het messageboard per dag/week/maand/jaar te querien??

Maar al met al ben ik weer een heel eind verder.. helaas is de (fout)melding die ik nu krijg: Parse error: parse error, unexpected T_STRING :(

Toch enorm bedankt! :bier:

Gebruikersavatar
WebSiteNet
Berichten: 6524
Lid geworden op: 20 okt 2003, 16:56
Locatie: Wieringerwerf
Contacteer:

Bericht door WebSiteNet » 29 jun 2003, 15:48

De data op de manier die ik heir boven beschreef de data uit halen, steeds als een bepaalde username een optellen en vervolgens sorteren.

Code: Selecteer alles

<?
//
// de tijden in seconden
//
$tijden = array(
    "uur" => 3600,
	"2uur" => 7200,
	"dag" => 86400,
	"week" => ( 7 * 86400 ) // etc. etc.
);
$sql = "
    SELECT
          a.*,
          b.*
    FROM
           " . USERS_TABLE . " a,
           " . POSTS_TABLE . " b
    WHERE
           a.user_id = b.user_id
    AND b.post_time > " . ( time() - $tijden['dag'] ). "
";
if( !$result = $db->mysql_query($sql) )
{
      message_die(GENERALL_ERROR, "could not query posts");
}
$users = array();
while( $row = $db->fetchrow($result) )
{
    if( !$users[$row['username']] )
	{
	    $users[$row['username']] = 1;
	}
	else
	{
	    $users[$row['username']]++;
	}
}
$topuser = "";
$topposts = 0;
foreach($users AS $key => $waarde){
    if($waarde > $topposts)
	{
	    $topposts = $waarde;
		$toppuser = $key;
	}
}
if( !$topuser )
{
    echo "No posts in the last 24 houres";
}
else
{
    echo "The top posting user is " . $topuser . " with " . $topposts . " posts";
}
?>
beetje lullig dat ik nu alles doe maar hij is nog niet af. ik heb maamd niet bij de tijden gedaan om dat 28, 29, 30 of 31 dagen kan zijn en een jaar 356 dagen of 355. en op deze manier selecteerd hij ook de posts van gasten. verder zie ik nog niks.

Gebruikersavatar
martijnkooi
Berichten: 4
Lid geworden op: 28 jun 2003, 18:04
Locatie: Druten
Contacteer:

Bericht door martijnkooi » 30 jun 2003, 20:30

Dit is 'm idd!!!

toppertje!

bedankt man..

Gesloten