Seite 1 von 6

Zaehler für dynamische Seiten

Verfasst: Sa 21. Feb 2004, 18:53
von flashg
Hallo,
ich möchte mir einen Zähler bauen, der die Visits zählt (nicht nur bei der Startseite, sondern bei ca. 20 Artikeln). Am Besten wahrscheinlich ein Datenfeld in der DB hinzufügen. Und bei jedem Aufruf inkrementieren. Nur habe ich keine Ahnung in welcher Tabelle ich da nachschauen muss.

Hat sich schon mal jemand mit dem Problem auseinandergesetzt?

Thx und Gruesse Gordon


http://www.flashg.de

Verfasst: Sa 21. Feb 2004, 20:24
von flashg
Hi,
hat sich erledigt.....Wen es interessiert:

<?
$hostname = "";
$database = "";
$username = "";
$password = "";



$flash = mysql_connect($hostname, $username, $password) or die(mysql_error());
mysql_select_db($database, $flash) or die("Kann DB nicht finden!");

$sql="SELECT visited FROM con_stat WHERE idcatart Like '$idart' ";
$result= mysql_query ($sql, $flash) or die ("Kann nicht selektieren");

$counter = mysql_fetch_array($result);
echo"<b>Diese Seite wurde schon $counter[0] mal aufgerufen.</b>";

?>


Gruss Gordon

http://www.flashg.de

Verfasst: So 22. Feb 2004, 00:58
von PickPay
1. idcatart != idart !!!!
Dein Query müsste so lauten:

Code: Alles auswählen

SELECT
 B.visited 
FROM 
 con_cat_art AS A,
 con_stat AS B
WHERE
 A.idcatart=B.idcatart AND
 A.idart = $idart
ORDER BY
 B.visited
LIMIT 1;
2. Es geht auch einfacher:

Code: Alles auswählen

<?
 $sql = 'SELECT
          B.visited 
         FROM 
          '.$cfg['tab']['cat_art'].' AS A,
          '.$cfg['tab']['stat'].' AS B
         WHERE
          A.idcatart=B.idcatart AND
          A.idart = '.$idart.'
         ORDER BY
          B.visited
         LIMIT 1; 
        ';
 $db->query($sql);
 if ($db->next_record())
  echo '<b>Diese Seite wurde schon '.$db->f('visited').' mal aufgerufen.</b>';

?>
Allerdings habe ich den Code nicht getestet, es ist also möglich, dass sich noch ein Fehler eingeschlichen hat.

Verfasst: So 22. Feb 2004, 22:26
von maTTos
Ich habs aber ausprobiert. :P Funktioniert einwandfrei! Thx

Verfasst: Mo 23. Feb 2004, 00:01
von timo
reicht der Menüpunkt "Statistiken" nicht aus? :)

Verfasst: Mo 23. Feb 2004, 00:14
von Arno Simon
timo hat geschrieben:reicht der Menüpunkt "Statistiken" nicht aus? :)
Erreichst Du damit ein "diese Seite wurde xyz mal besucht" auf der jeweiligen Seite? ;)

Ich wüßte nicht....

Gruß

Arno

Verfasst: Mo 23. Feb 2004, 09:54
von timo
Nein, mir ging es um das reinschreiben in die DB. Die Werte sind ja in den Tabellen con_stat und con_stat_archive vorhanden, einfach select auf beide, addieren, und anzeigen.

Verfasst: Mo 23. Feb 2004, 17:47
von flashg
Hi,
also mein Code tuts auch...

http://www.kuratlas.de/25_29.html

Gruss Gordon

Seitenzähler

Verfasst: Mo 1. Mär 2004, 11:42
von kuchi
Hallo Gordon!

Deinen Seitenzähler habe ich mir so hingebastelt wie ich ihn brauchte und alles war ok. Seit heute wird er nicht mehr angezeigt! Hast Du eine Erklärung dafür?

Gruß kuchi

Verfasst: Mo 1. Mär 2004, 11:52
von timo
flashg hat geschrieben:also mein Code tuts auch...
Klar, aber warum das Rad neu erfinden? :)

Verfasst: Mo 1. Mär 2004, 12:31
von flashg
Sorry,
hab übersehen, dass die Statistiken irgentwann in die Tabelle con_stat_archive rüberwandern. Folglich musst Du auch ein Select auf diese Tabelle machen und beide zusammenaddieren, wie timo schon schrieb.

Bis dann Gruss Gordon

Seitenzähler

Verfasst: Mo 1. Mär 2004, 12:53
von kuchi
Hi Gordon!

wir haben verstanden...

gruß kuchi

Seitenzähler

Verfasst: Di 2. Mär 2004, 17:43
von kuchi
Hallo PickPay!

habe folgendes versucht und es geht nicht:

Code: Alles auswählen

<? 
$sql = 'SELECT sum(B.visited+C.visited)
FROM con_cat_art AS A, con_stat AS B, con_stat_archive AS C
WHERE A.idcatart = B.idcatart AND A.idcatart = C.idcatart
LIMIT 1;
    '; 
$db->query($sql); 
if ($db->next_record()) 
  echo '<br><table border=\"0\"cellpadding=\"0\" cellspacing=\"0\"><tr><td style=\"font-family:arial,geneva,sans-serif;font-size:0.7em;\">Aufrufe <u>dieser</u> Seite:&nbsp;'.$db->f('B.visited+C.visited').'&nbsp;&nbsp;seit 27.02.04.</td></tr></table>'; 

?> 
Was ist verkehrt?


Gruß kuchi

dynamischer Seitenzähler

Verfasst: Mi 10. Mär 2004, 12:42
von kuchi
Hallo,

was ist hier verkehrt?

Code: Alles auswählen

<? 
$sql  = 'SELECT sum( \'visited\' ) ';
$sql .= 'FROM con_cat_art AS A, con_stat AS B, con_stat_archive AS C';
$sql .= 'WHERE A.idcatart = B.idcatart AND A.idcatart = C.idcatart';
 
$db->query($sql); 
if ($db->next_record()) 
  echo '<br><table border=\"0\"cellpadding=\"0\" cellspacing=\"0\"><tr><td style=\"font-family:arial,geneva,sans-serif;font-size:0.7em;\">Aufrufe <u>dieser</u> Seite:&nbsp;'.$db->f('visited').'&nbsp;&nbsp;seit 27.02.04.</td></tr></table>'; 

?> 
Gruß kuchi

Verfasst: Mi 10. Mär 2004, 12:55
von emergence
folgendes query:

Code: Alles auswählen

SELECT sum(B.visited+C.visited) AS visited
FROM con_cat_art AS A, con_stat AS B, con_stat_archive AS C
WHERE A.idcatart = B.idcatart AND A.idcatart = C.idcatart
LIMIT 1
auf das feld greift man dann mittels
$db->f('visited')
zu...

bei mir klappt das... ;-)