Mehre Toplisten (Hitsin Hitsout) auslesen.
Moderator:Paddelberg
Hallo erst einmal.
Ich hatte dich (Paddelberg) schon im SM Forum angesprochen wegen dem Thema.
Ich möchte auf einigen meiner Seiten eine Übersicht bauen, auf der alle Toplisten aufgelistet sind mit Hitsin, Hitsout, Webmaster, Besucher, usw (wie einen Index).
Nun habe ich einmal alle Toplisten in einer DB und einmal je Topliste eine DB.
Wie kann ich auf die Daten zugreifen??
Gibt es eine Möglichkeit das Script selbst anzusprechen oder muss ich mir selber DB abfragen bauen?
Bei der Version mit mehreren DBs brauche ich ja dann eine Möglichkeit mehre DBs nach einander anzusprechen?
Gibt es schon eine Lösung?
Danke und Grüße
Enno
Ich hatte dich (Paddelberg) schon im SM Forum angesprochen wegen dem Thema.
Ich möchte auf einigen meiner Seiten eine Übersicht bauen, auf der alle Toplisten aufgelistet sind mit Hitsin, Hitsout, Webmaster, Besucher, usw (wie einen Index).
Nun habe ich einmal alle Toplisten in einer DB und einmal je Topliste eine DB.
Wie kann ich auf die Daten zugreifen??
Gibt es eine Möglichkeit das Script selbst anzusprechen oder muss ich mir selber DB abfragen bauen?
Bei der Version mit mehreren DBs brauche ich ja dann eine Möglichkeit mehre DBs nach einander anzusprechen?
Gibt es schon eine Lösung?
Danke und Grüße
Enno
- Paddelberg
- Site Admin
- Beiträge:925
- Registriert:Dienstag 17. Januar 2006, 00:02
- Wohnort:Worms
Danke
DANKE
Ja es geht mir nur darum die Statistiken auf einer externen Seite anzuzeigen.
(Hits in, Hits out, Hits in Total, Hits out Total, Mitglieder(Anzahl))
So das ich damit eine kleine Übersicht bauen kann.
Ich habe mich nun auch mal an den Template versucht, das hat richtig gut geklappt.
Danke und Mfg Enno
Ja es geht mir nur darum die Statistiken auf einer externen Seite anzuzeigen.
(Hits in, Hits out, Hits in Total, Hits out Total, Mitglieder(Anzahl))
So das ich damit eine kleine Übersicht bauen kann.
Ich habe mich nun auch mal an den Template versucht, das hat richtig gut geklappt.
Danke und Mfg Enno
- Paddelberg
- Site Admin
- Beiträge:925
- Registriert:Dienstag 17. Januar 2006, 00:02
- Wohnort:Worms
er mein wohl das du ne extra stats Seite für jede liste machen sollst, die du dann in iframe öffnen kannst
machs lieber so
als erstes die index.php (die datei, die die Übersicht mit den Listen zeigt!)
und dann noch die datei rows.html
machs lieber so
als erstes die index.php (die datei, die die Übersicht mit den Listen zeigt!)
Code: Alles auswählen
<?php
############################################
### Top-XL Lister - ##### stats meherer listen anzeigen
############################################
////////////////////////////////////////////
////////////////////////////////////////////
# config -
$path = '../top-xl'; # pfad zu einer der toplisten (für includes)
$template_file = 'html/rows.html'; # relativer Pfad zu dem template includive filename
$sprache = 'de'; # sprache de/en etc - > sprachfile für vorhanden sein
### datenban config
# TopListe 1
$conf_array[] = array(
'table_pre' => 'topxl', # vorspann der tabellen
'db' => array(
'mysql_host' => 'localhost', # host zur datenbank
'mysql_username' => '', # username für die datenbank
'mysql_passwd' => '', # passwort für die Db
'mysql_dbase' => '' # name der datenbank
));
# TopListe 2
$conf_array[] = array(
'table_pre' => 'topxl', # vorspann der tabellen
'db' => array(
'mysql_host' => 'localhost', # host zur datenbank
'mysql_username' => '', # username für die datenbank
'mysql_passwd' => '', # passwort für die Db
'mysql_dbase' => '' # name der datenbank
));
# TopListe 3
$conf_array[] = array(
'table_pre' => 'topxl', # vorspann der tabellen
'db' => array(
'mysql_host' => 'localhost', # host zur datenbank
'mysql_username' => '', # username für die datenbank
'mysql_passwd' => '', # passwort für die Db
'mysql_dbase' => '' # name der datenbank
));
# TopListe 4
#..... du kannst beliebig viele Listen auslesen
###############################################
### script anfang
###############################################
# safety für includes
$scriptpath = $_SERVER['DOCUMENT_ROOT'];
# sprachfile
include($path."/lang/".$sprache.".php");
if(!file_exists($template_file))
{echo "The template file ".$template_file." does not exist."; exit;}
$sql_username = '';
# die listen in ner schleife
foreach ($conf_array as $conf)
{
###### Sql
# Tables
$topxl_user_table = $conf['table_pre']."_user";
$topxl_admin_table = $conf['table_pre']."_admin";
# sql connect
if ($conf['db']['mysql_username'] != $sql_username)
{
$sql_username = $conf['db']['mysql_username'];
set_magic_quotes_runtime(0);
mysql_connect($conf['db']['mysql_host'],$conf['db']['mysql_username'],$conf['db']['mysql_passwd']) OR DIE (mysql_error());
}
mysql_select_db($conf['db']['mysql_dbase']);
# vars zu entsprechenden liste auslesen
include($path."/inc/vars.php");
# filename der topliste - index.php entfernen
if ($filename == "index.php")
{$filenamex == "";}
else {$filenamex = $filename;}
# stats rausholen
$countuser = mysql_query("SELECT COUNT(id) as cnt FROM ".$topxl_user_table." WHERE active='yes'") or die (mysql_error());
$row = @mysql_fetch_array($countuser);
$allusers = $row["cnt"];
$counthits = mysql_query("SELECT sum(hitintotal) AS insumme,sum(hitouttotal) AS outsumme,sum(hitin) AS curinsumme,sum(hitout) AS curoutsumme FROM ".$topxl_user_table." WHERE active='yes'") or die (mysql_error());
$counthitsrow = @mysql_fetch_array($counthits);
$allhitsin = $counthitsrow[insumme];
$allhitsout = $counthitsrow[outsumme];
$currenthitsin = $counthitsrow[curinsumme];
$currenthitsout = $counthitsrow[curoutsumme];
if ($currenthitsin and $currenthitsin !=0 and $currenthitsout and $currenthitsout !=0)
{
$ratiohits = $currenthitsout/$currenthitsin;
$ratiohits = substr($ratiohits, 0, 4);
}
else {$ratiohits = 1;}
if ($allhitsin and $allhitsin !=0 and $allhitsout and $allhitsout !=0)
{
$ratiohitstotal = $allhitsout/$allhitsin;
$ratiohitstotal = substr($ratiohitstotal, 0, 4);
}
else {$ratiohitstotal = 1;}
$nextreset = $lastreset+$resettime;
# template öffnen
$fp1 = fopen($template_file,"r");
$zeile = fread ($fp1, filesize ($template_file));
#### platzhalter im template ersetzen
# vars
$zeile = ereg_replace("{topsiteurl}",$topsiteurl,$zeile); # urls zur topliste
$zeile = ereg_replace("{topsitename}",$topsitename,$zeile); # name der topliste
$zeile = ereg_replace("{allhitsin}",$allhitsin,$zeile); # alle hits in
$zeile = ereg_replace("{allhitsout}",$allhitsout,$zeile); # alle hits out
$zeile = ereg_replace("{currenthitsin}",$currenthitsin,$zeile); # hits inout seit letztem reset
$zeile = ereg_replace("{allusers}",$allusers,$zeile); # anzahl freigeschalteter user
$zeile = ereg_replace("{lastreset}",date("Y.m.d-H.i.s", $lastreset),$zeile); # zeitpunkt letztes reset
$zeile = ereg_replace("{nextreset}",date("Y.m.d-H.i.s", $nextreset),$zeile); # zeitpunkt nächstes reset
$zeile = ereg_replace("{ratiohits}",$ratiohits,$zeile); # verhältnis hits in/out seit letztem reset
$zeile = ereg_replace("{ratiohitstotal}",$ratiohitstotal,$zeile); # verhältnis hits in/out gesamt
# texte
$zeile = ereg_replace("{text_signup}",$text_signup,$zeile);
$zeile = ereg_replace("{text_hitsin}",$text_hitsin,$zeile);
$zeile = ereg_replace("{text_currenthitsin}",$text_currenthitsin,$zeile);
$zeile = ereg_replace("{text_hitsout}",$text_hitsout,$zeile);
$zeile = ereg_replace("{text_currenthitsout}",$text_currenthitsout,$zeile);
$zeile = ereg_replace("{text_lastreset}",$text_lastreset,$zeile);
$zeile = ereg_replace("{text_nextreset}",$text_nextreset,$zeile);
$zeile = ereg_replace("{text_ratiototal}",$text_ratiototal,$zeile);
$zeile = ereg_replace("{text_ratio}",$text_ratio,$zeile);
$zeile = ereg_replace("{text_members}",$text_members,$zeile);
@fclose($fp1);
$main_content .= $zeile;
}
###############################################
### script ende
###############################################
# Ausgabe
echo $main_content;
?>
Code: Alles auswählen
<table width="500" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td colspan="5" nowrap="nowrap" bgcolor="#FFFFFF"><strong><a href="{topsiteurl}">{topsitename}</a></strong></td>
<td nowrap="nowrap" bgcolor="#FFFFFF"><a href="{topsiteurl}/add.php" target="_blank" class="members">{text_signup}</a></td>
</tr>
<tr>
<td nowrap="nowrap" bgcolor="#FFFFFF">{currenthitsin} {text_currenthitsin}</td>
<td nowrap="nowrap" bgcolor="#FFFFFF">{currenthitsout} {text_currenthitsout}</td>
<td nowrap="nowrap" bgcolor="#FFFFFF">{text_ratio} 1/{ratiohits}</td>
<td nowrap="nowrap" bgcolor="#FFFFFF">{allhitsin} {text_hitsin}</td>
<td nowrap="nowrap" bgcolor="#FFFFFF">{allhitsout} {text_hitsout}</td>
<td nowrap="nowrap" bgcolor="#FFFFFF">{text_ratiototal} 1/{ratiohitstotal}</td>
</tr>
<tr>
<td colspan="6" nowrap="nowrap" bgcolor="#FFFFFF">
{allusers} {text_members} {text_nextreset} {nextreset} {text_lastreset} {lastreset}</td>
</tr>
</table>
Zuletzt geändert von Paddelberg am Sonntag 4. November 2007, 23:09, insgesamt 2-mal geändert.
- Paddelberg
- Site Admin
- Beiträge:925
- Registriert:Dienstag 17. Januar 2006, 00:02
- Wohnort:Worms
Ist ja geil danke dir Tausendfach!!!!!!!!!!!!
Eine Frage habe ich noch, wohin lege ich die rows.html (ins selbe Verzeichnis wie die index.php oder soll die in die Toplisten) (ich denke mal bei die Index.php)
und im config teil kann ich bei der Version wo ich alle Toplisten in einer DB habe Überall die selben DB Daten eintragen nur den 'table_pre' => 'änder ich hier ab'??
Trotzdem erst mal Danke echt super
Eine Frage habe ich noch, wohin lege ich die rows.html (ins selbe Verzeichnis wie die index.php oder soll die in die Toplisten) (ich denke mal bei die Index.php)
und im config teil kann ich bei der Version wo ich alle Toplisten in einer DB habe Überall die selben DB Daten eintragen nur den 'table_pre' => 'änder ich hier ab'??
Trotzdem erst mal Danke echt super
- Paddelberg
- Site Admin
- Beiträge:925
- Registriert:Dienstag 17. Januar 2006, 00:02
- Wohnort:Worms
den pfad zur rows.html kannst du ziemlich am anfang angeben
in der var $template_file
var $path = da musst du den Pfad zu einer bestehenden installation einer Topliste angeben (den pfad zum hauptverzeichniss)
var $sprache = halt die Sprache. kommt aus den Sprachfiles der bestehenden installation, die du unter path angegeben hast -> deswegen gehen da nur die Sprachen, die in der bestehenden installation enthalten sind
mfg
simon
in der var $template_file
var $path = da musst du den Pfad zu einer bestehenden installation einer Topliste angeben (den pfad zum hauptverzeichniss)
var $sprache = halt die Sprache. kommt aus den Sprachfiles der bestehenden installation, die du unter path angegeben hast -> deswegen gehen da nur die Sprachen, die in der bestehenden installation enthalten sind
ja, genau.Überall die selben DB Daten eintragen nur den 'table_pre' => 'änder ich hier ab'??
mfg
simon
Also es Funktioniert super.
Werde oder besser will jetzt noch ein bissel daran rum basten,
da ich die Daten auf der Seite verteilt brauche,
kann ich das Arry einzeln anzapfen oder ist es besser wenn ich mir eine Array mit einer Schleife für meine Inhalte bauen die ich dazwischen haben will?
(link zur Seite http://top100.ero-sexportal.de) ich habe da im Inhalt ein Liste mit Texten zu den Toplisten und ich wollte das die jeweiligen Daten zu den Toplisten direkt darunter stehen dann die nächste und so weiter und so weiter?
Ein eigenes Template zu den Toplisten kommt noch habe das auf einer anderen URL geht auch super.
MFG Enno
Werde oder besser will jetzt noch ein bissel daran rum basten,
da ich die Daten auf der Seite verteilt brauche,
kann ich das Arry einzeln anzapfen oder ist es besser wenn ich mir eine Array mit einer Schleife für meine Inhalte bauen die ich dazwischen haben will?
(link zur Seite http://top100.ero-sexportal.de) ich habe da im Inhalt ein Liste mit Texten zu den Toplisten und ich wollte das die jeweiligen Daten zu den Toplisten direkt darunter stehen dann die nächste und so weiter und so weiter?
Ein eigenes Template zu den Toplisten kommt noch habe das auf einer anderen URL geht auch super.
MFG Enno
- Paddelberg
- Site Admin
- Beiträge:925
- Registriert:Dienstag 17. Januar 2006, 00:02
- Wohnort:Worms
ich würde wohl die Beschreibungen/Bilder etc mit in den config array packen.
zusätzliche Template replacer
im template musste dann halt noch dementsprechend die Platzhalter dazu machen
{pic_url}
{beschreibung}
{more_link}
mfg
simon
Code: Alles auswählen
# TopListe 1
$conf_array[] = array(
'table_pre' => 'topxl', # vorspann der tabellen
'pic_url' => 'http://www.domain.de/img.jpg',
'beschreibung' => 'Beschreibung der liste',
'more_link' => 'http://www.domain.de/kategoriexxx.html',
'db' => array(
'mysql_host' => 'localhost', # host zur datenbank
'mysql_username' => '', # username für die datenbank
'mysql_passwd' => '', # passwort für die Db
'mysql_dbase' => '' # name der datenbank
));
Code: Alles auswählen
$zeile = ereg_replace("{pic_url}",$conf[pic_url],$zeile);
$zeile = ereg_replace("{beschreibung}",$conf[beschreibung],$zeile);
$zeile = ereg_replace("{more_link}",$conf[more_link],$zeile);
{pic_url}
{beschreibung}
{more_link}
mfg
simon
Also die Sache Funktioniert Super!!!!!
Nur eins noch, kann ich irgendwie alles extra noch zusammen rechnen lassen in eine extra Ausgabe.
So das ich oben oder unten eine Ausgabe habe wo alle Toplisten zusammen gerechnet sind????
Mir geht es nur um die "Mitglieder", "Hits in Total", "Hits out Total".
Idee:
Das ich das "Templates öffnen" aus der Schleife nehme erst alles Durchlaufe lasse in einer Global zusammen rechne und dann an 's Templates sende???
Grüße und Danke Enno
Nur eins noch, kann ich irgendwie alles extra noch zusammen rechnen lassen in eine extra Ausgabe.
So das ich oben oder unten eine Ausgabe habe wo alle Toplisten zusammen gerechnet sind????
Mir geht es nur um die "Mitglieder", "Hits in Total", "Hits out Total".
Idee:
Das ich das "Templates öffnen" aus der Schleife nehme erst alles Durchlaufe lasse in einer Global zusammen rechne und dann an 's Templates sende???
Grüße und Danke Enno
- Paddelberg
- Site Admin
- Beiträge:925
- Registriert:Dienstag 17. Januar 2006, 00:02
- Wohnort:Worms
Hi
du machst dir 3 neue vars (vor die foreach Schleife, nach $sql_username = ''; )
$all_members = '0';
$all_hits_in_total = '0';
$all_hits_out_total = '0';
in der foreach Schleife, nach $nextreset = $lastreset+$resettime; schreibst du dann folgendes
$all_members = $all_members + $allusers;
$all_hits_in_total = $all_hits_in_total + $allhitsin;
$all_hits_out_total = $all_hits_out_total + $allhitsout;
Die Ausgabe kannst du machen, indem du ganz am ende, bei echo $main_content; entwder davor, oder danach schreibst
z.B.
echo '<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100%">Mitglieder gesamt: '.$all_members.' - Hits In gesamt: '.$all_hits_in_total.' - Hits out gesamt: '.$all_hits_out_total.'</td>
</tr>
</table>';
mfg
simon
du machst dir 3 neue vars (vor die foreach Schleife, nach $sql_username = ''; )
$all_members = '0';
$all_hits_in_total = '0';
$all_hits_out_total = '0';
in der foreach Schleife, nach $nextreset = $lastreset+$resettime; schreibst du dann folgendes
$all_members = $all_members + $allusers;
$all_hits_in_total = $all_hits_in_total + $allhitsin;
$all_hits_out_total = $all_hits_out_total + $allhitsout;
Die Ausgabe kannst du machen, indem du ganz am ende, bei echo $main_content; entwder davor, oder danach schreibst
z.B.
echo '<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100%">Mitglieder gesamt: '.$all_members.' - Hits In gesamt: '.$all_hits_in_total.' - Hits out gesamt: '.$all_hits_out_total.'</td>
</tr>
</table>';
mfg
simon