Hallo PHP-Profies,
ich hätte da mal wieder ein kleines Problem
und hoffe hier im Forum auf Hilfe.
Ich habe eine Countertoplist
Hier mal der Link
Nun habe ich folgendes vor, ich habe dort eine Auflistung der Hits nach
1.) Gesamt
2.) Monat
3.) Tag (heute)
Sortiert ist es nach 'Gesamt', nun möchte ich gerne das der User durch einen Klick ( z.B. kleiner Pfeil ) die Sortierung auf Monat oder Tag ändern kann. Ich habe es jetztr schon mehrfach versucht, aber das mit den Schleifen werde ich nie richtig kappieren, denn es muss ja einfacher gehen als das Script 3 mal zu schreiben und je nach Sortierungsaufruf ein anderes Script zu starten ?
Für die Hilfe bedanke ich mich schon mal im voraus
gruss Manuela
ich hätte da mal wieder ein kleines Problem
und hoffe hier im Forum auf Hilfe.
Ich habe eine Countertoplist
PHP-Code:
<?php
include "main_location.inc";
define ('NO_HEADFOOT', 1);
include INC_HEADSTUFF;
$curr_usr_time = time()+3600;
$id = 0;
/* timestamp from today's GMT Unix timestamp, 12:00 AM */
$today = UserToGMT(mktime(0,0,0,date('m',$curr_usr_time),date('d',$curr_usr_time),date('Y',$curr_usr_time)));
/* timestamp from this month's GMT Unix timestamp, 1. of month, 12:00 AM */
$first_of_month = UserToGMT(mktime(0,0,0,date('m',$curr_usr_time),1,date('Y',$curr_usr_time)));
?>
<?php
$ArrTl = getSerializedCache('tlmonth', 3600);
if (!$ArrTlx) {
$ArrTl = Array();
$ArrToSort = Array();
$sql = "SELECT id,your_url FROM ".$tbl_users." WHERE conf = 1 AND del_usr = 0";
$res = mysql_query($sql);
$z = 0;
while ($row = @mysql_fetch_array($res)) {
$urls = explode("\n", $row[1]);
$url = $urls[0];
$url_str = shortString($url,80,5);
$user_id = $row[0];
$month_sql = "SELECT count(mp) FROM pphl_".$user_id.$tbl_logs." WHERE time > ".$first_of_month;
$day_sql = "SELECT count(mp) FROM pphl_".$user_id.$tbl_logs." WHERE time BETWEEN ".$today." AND ".($today+86400);
$total_sql = "SELECT count(mp) FROM pphl_".$user_id.$tbl_logs;
$startday_sql = "SELECT date_start FROM ".$tbl_users." WHERE id='$user_id' OR username='$user_id'";
$result = mysql_query($month_sql);
$dayresult = mysql_query($day_sql);
$totalresult = mysql_query($total_sql);
$startresult = mysql_query($startday_sql);
$hits_arr = @mysql_fetch_array($result);
$hits_arr_day = @mysql_fetch_array($dayresult);
$hits_arr_total = @mysql_fetch_array($totalresult);
$startday_arr = @mysql_fetch_array($startresult);
$hits = $hits_arr[0];
$dayhits = $hits_arr_day[0];
$totalhits = $hits_arr_total[0];
$startday = $startday_arr[0];
$ArrToSort[$z][0] = $totalhits;
$ArrToSort[$z][1] = $hits;
$ArrToSort[$z][2] = $dayhits;
$ArrToSort[$z][3] = $url_str;
$ArrToSort[$z][4] = $url;
$ArrToSort[$z][5] = $startday;
$z++;
}
rsort($ArrToSort);
$Table ='<table border=0 cellspacing=1 cellpadding=1>';
$Platz = '<tr><td bgcolor=#E0DAD0><p align=center><font face=Arial size=2 color=#000000><b>Platz</b></font></td>';
$Urls = ' <td bgcolor=#E0DAD0><p align=center><font face=Arial size=2 color=#000000><b>Homepage</b></font></td>';
$Totalhits ='<td width=72 bgcolor=#E0DAD0><p align=center><font face=Arial size=2 color=#000000><b>Hits<br> </b></font><font face=Arial size=1 color=#000000>(Gesamt)</font></td>';
$Monatshits ='<td width=72 bgcolor=#E0DAD0><p align=center><font face=Arial size=2 color=#000000><b>Hits<br> </b></font><font face=Arial size=1 color=#000000>(Monat)</font></td>';
$Tageshits ='<td width=72 bgcolor=#E0DAD0><p align=center><font face=Arial size=2 color=#000000><b>Hits<br> </b></font><font face=Arial size=1 color=#000000>(Heute)</font></td></tr>';
$ArrTl[0] = Array($Table,$Platz,$Urls,$Totalhits,$Monatshits,$Tageshits);
$ArrTl[1] = Array();
$ArrTl[2] = $ArrTl[1];
for ($i = 3, $m = 0, $z = 1; $m < 20; $i++, $m++, $z++) {
$startday = $ArrToSort[$m][5];
$url = $ArrToSort[$m][4];
$url_str = $ArrToSort[$m][3];
$dayhits = $ArrToSort[$m][2];
$hits = $ArrToSort[$m][1];
$totalhits = $ArrToSort[$m][0];
$ArrTl[$i][0] = '<tr><td bgcolor=#F7F5F2><p align=center><font face=Arial size=5 color=#000000>'.$z.'.</font></td>';
$ArrTl[$i][1] = '<td bgcolor=#F7F5F2><p align=center><font face=Arial size=2 color=#000000><a href="'.$url.'" target="_blank">'.$url_str.'</a></font></td>';
$ArrTl[$i][2] = '<td bgcolor=#F7F5F2><p align=center><font face=Arial size=2 color=#000000>'.$totalhits.'</font></td>';
$ArrTl[$i][3] = '<td bgcolor=#F7F5F2><p align=center><font face=Arial size=2 color=#000000>'.$hits.'</font></td>';
$ArrTl[$i][4] = '<td bgcolor=#F7F5F2><p align=center><font face=Arial size=2 color=#000000>'.$dayhits.'</font></td></tr>';
$ArrTl[$i][5] = '<tr><td bgcolor=#F7F5F2><p align=center><font face=Arial size=2 color=#000000> </font></td>';
$ArrTl[$i][6] = '<td bgcolor=#F7F5F2><p align=center><font face=Arial size=2 color=#000000>Counterstart : '.date("d.m.Y",$startday).'</font></td>';
$ArrTl[$i][7] = '<td bgcolor=#F7F5F2><p align=center><font face=Arial size=2 color=#000000> </font></td>';
$ArrTl[$i][8] = '<td bgcolor=#F7F5F2><p align=center><font face=Arial size=2 color=#000000> </font></td>';
$ArrTl[$i][9] = '<td bgcolor=#F7F5F2><p align=center><font face=Arial size=2 color=#000000> </font></td></tr>';
}
putSerializedCache('tlmonth', $ArrTl, $id);
}
echo ToplistTable($ArrTl,2,'100%');
?>
Nun habe ich folgendes vor, ich habe dort eine Auflistung der Hits nach
1.) Gesamt
2.) Monat
3.) Tag (heute)
Sortiert ist es nach 'Gesamt', nun möchte ich gerne das der User durch einen Klick ( z.B. kleiner Pfeil ) die Sortierung auf Monat oder Tag ändern kann. Ich habe es jetztr schon mehrfach versucht, aber das mit den Schleifen werde ich nie richtig kappieren, denn es muss ja einfacher gehen als das Script 3 mal zu schreiben und je nach Sortierungsaufruf ein anderes Script zu starten ?
Für die Hilfe bedanke ich mich schon mal im voraus
gruss Manuela
Kommentar