[GastForen Programmierung/Entwicklung PHP und MySQL Mit mysql klicks zählen und auf seite ausgeben

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Mit mysql klicks zählen und auf seite ausgeben

bidu
Beiträge gesamt: 15

21. Okt 2006, 20:12
Beitrag # 1 von 12
Bewertung:
(9386 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo
leider habe ich in ihrem forum nichts über das zählen von klicks gefunden.
Meine frage:
Wie erstelle ich eine Datenbank in myqsl und wie sieht der php code aus, damit
ich auf der seite anzeigen kann, wieviel ein beispiel link angeklickt wurde.
Besten Dank
X

Mit mysql klicks zählen und auf seite ausgeben

Bitfilme
Beiträge gesamt: 264

21. Okt 2006, 22:10
Beitrag # 2 von 12
Beitrag ID: #257878
Bewertung:
(9373 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Schau dir mal diese Seite an:
http://www.php-faq.de/...e-klick-zaehler.html


als Antwort auf: [#257871]

Mit mysql klicks zählen und auf seite ausgeben

bidu
Beiträge gesamt: 15

21. Okt 2006, 22:54
Beitrag # 3 von 12
Beitrag ID: #257882
Bewertung:
(9362 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Besten Dank
ich kenne diesen link, jedoch kann ich keine solche mysql tabelle erzeugen und auch kein url einfügen.
zudem wird über das php script die klicks auf der ausgabeseite nicht angezeigt


als Antwort auf: [#257878]

Mit mysql klicks zählen und auf seite ausgeben

Bitfilme
Beiträge gesamt: 264

21. Okt 2006, 23:10
Beitrag # 4 von 12
Beitrag ID: #257883
Bewertung:
(9360 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Was möchtest Du dann haben? Zum Beispiel die Top oder Downloads anzeigen, oder nur für Dich selber?


als Antwort auf: [#257882]

Mit mysql klicks zählen und auf seite ausgeben

bidu
Beiträge gesamt: 15

22. Okt 2006, 09:37
Beitrag # 5 von 12
Beitrag ID: #257894
Bewertung:
(9315 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo
Ich möchte die anzahl klicks bei downloads anzeigen lassen.
besten dank
gruss bidu


als Antwort auf: [#257883]

Mit mysql klicks zählen und auf seite ausgeben

Bitfilme
Beiträge gesamt: 264

22. Okt 2006, 20:29
Beitrag # 6 von 12
Beitrag ID: #257925
Bewertung:
(9289 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Am einfachsten wäre eben, wenn Du ein Formular schreibst, in dem Du die Links einträgst, an die Datenbank sendetst. Dies hat den Vorteil das Du die Links an Ort und Stelle ausgeben kannst mit dem Zählerstand.

eintrag.php
Code
<?php 
function eintrag($url, $link)
// Zugangsdaten fuer die Datenbank
require("connect.php");



// Verbindung zum MySQL-Server aufbauen
$db = @mysql_connect($host, $user, $pass);

if ($db) {
mysql_select_db($datab, $db);
$sql_insert = "INSERT INTO $table (url, count, link) ".
VALUES ('"$url"', '0', '"$link"')";
@mysql_query($sql_insert);
}
if ($_POST['URL'] && $_POST['LINK']){
eintrag($_POST['URL'], $_POST['LINK']);
}
?>
<form action="eintrag.php" method="POST" name="Eintrag">
<input type="text" size="255" name="URL">
<input type="text" size="25" name="LINK">
<input type="submit" name="Eintrag" value="Eintragen">
</form>


Die connect.php sieht dann so aus:
Code
<?php 

// Zugangsdaten fuer die Datenbank
// Diese sollten der Sicherheit halber
// in ein Verzeichnis außerhalb des
// Document-Root ausgelagert werden.

$host = "localhost";
$user = "user";
$pass = "demo_password";

$datab = "demo_db";
$table = "counter";

?>

count.php
Code
<?php 
function counter($url){
// Zugangsdaten fuer die Datenbank
require("connect.php");

// Verbindung zum MySQL-Server aufbauen
$db = @mysql_connect($host, $user, $pass);

if ($db) {
if (@mysql_select_db($datab, $db)) {
// Eintrag fuer die übergebene URL um 1 erhöhen.
$query = "UPDATE $table SET count = count + 1 WHERE url = '"$url"'";
$result = @mysql_query($query);

}
}

// Auf übergebene URL weiterleiten
Header("Location: " . $_GET['url']);
}
counter($_GET['url']);
?>


link.php für die Ausgabe an die stelle wo Du es haben musst.
Code
<?php 
function ausgabe(){
// Zugangsdaten fuer die Datenbank
require("connect.php");

// Verbindung zum MySQL-Server aufbauen
$db = @mysql_connect($host, $user, $pass);

if ($db) {
mysql_select_db($datab, $db);
$sql = "SELECT * From $table ORDER BY url ASC, $db";
$result = mysql_query($sql, $db);

for($i=0; $i<mysql_num_rows($db); $i++){
$zeile = mysql_fetch_object($db);
echo '<a href="count.php?url='.$zeile->url.'">'.$zeile->link.'</a> Download '.$zeile->count.' mal
}
}
}
// ausgabe erfolgt mit:
ausgabe();


install.php Creaiert die Tabelle
Code
function connect()  
{

require("connect.php");
$connect= mysql_connect($host, $user, $passwort) or die(mysql_error());
mysql_select_db($db, $connect) or die(mysql_error());


$install = "CREATE TABLE $table ( id int(10) unsigned ".
"PRIMARY KEY default '0' auto_increment, ".
"url varchar(255), count int(11) default '0', ".
"link VARCHAR(50) NOT NULL";

mysql_query($install, $connect);
$result = mysql_query("SHOW COLUMNS FROM $table, $connect");
if (!$result) {
echo Die Tabelle ist nicht erstellt worden: ' . mysql_error();
exit;
}
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
print_r($row);
echo 'Tabellen erstellt.';
}
}

}

connect();
?>

Dieser Code ist nicht getestet!


als Antwort auf: [#257894]
(Dieser Beitrag wurde von Bitfilme am 22. Okt 2006, 20:38 geändert)

Mit mysql klicks zählen und auf seite ausgeben

Bitfilme
Beiträge gesamt: 264

24. Okt 2006, 02:27
Beitrag # 7 von 12
Beitrag ID: #258138
Bewertung:
(9261 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So habe mal das ganze auf meinen Webserver getesten und die Fehler ausgemerzt

Jetzt steht es zum Downloden http://www.bitsoft.ch/download/
bereit. Eine Demo ist auch schon zu sehen.


als Antwort auf: [#257894]

Mit mysql klicks zählen und auf seite ausgeben

bidu
Beiträge gesamt: 15

26. Okt 2006, 21:31
Beitrag # 8 von 12
Beitrag ID: #258838
Bewertung:
(9225 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Bitsoft
Vielen DANK!! Ich glaube da haben Sie nicht nur mir geholfen!
Besser konnten Sie das nicht beschreiben ...inkl Demo.
Besten Dank.
Noch eine Frage; ist es auch möglich noch ein Bild mit text zu integrieren?
Wie sieht da die Ausgabe.php aus und die Datenbank?
Kann übrigens jetzt auch selber Datenbanken erstellen und abrufen.
Jedoch das mit Bildern will nicht klappen.
Stelle mir vor; die Bilder sind in einem Ordner geladen und werden durch die Datenbank mit Text abgerufen.
Gruss Bidu


als Antwort auf: [#258138]

Mit mysql klicks zählen und auf seite ausgeben

Bitfilme
Beiträge gesamt: 264

27. Okt 2006, 02:54
Beitrag # 9 von 12
Beitrag ID: #258865
Bewertung:
(9216 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Bin mir mir nicht ganz sicher was Du meinst, aber ich vermuten das Du das so willst:
Code
<?php 
function ausgabe(){
/* ---------- Zugangsdaten fuer die Datenbank ---------- */
require("connect.php");

/*---------- Verbindung zum MySQL-Server aufbauen ---------- */
$db = mysql_connect($host, $user, $pass);

if ($db) {
mysql_select_db($datab, $db);
$sql = "SELECT * From $table ORDER BY link ASC";
$result = mysql_query($sql, $db);

/* ---------- Datenbank lesen und Ausgeben ---------- */
for($i=0; $i<mysql_num_rows($result); $i++){
$zeile = mysql_fetch_object($result);
$_GET['link'] .= ' <tr>
<td><a href="/count/counter.php?url='.$zeile->url.'">
<img border="0" src="'.$zeile->link.'" width="120" alt="Bild'.$i.'"></a></td>
<td>Download '.$zeile->count.' mal</td>
</tr>'."\r\n";
}
}

/* ---------- Tabelle ergänzen, wenn keine Einträge in der Datenbank vorhanden sind ---------- */
if ($i == '0'){
$_GET['link'] .= ' <tr>
<td colspan="2">Keine Einträge vorhanden!</td>
</tr>'."\r\n";
}
}

/* ausgabe erfolgt mit: */
ausgabe();
if (file_exists("tpl/linkausgabe.php")){
require("tpl/linkausgabe.php");
}
?>


Einfach beim Linksname in der eintragen.php die URL der Bilderdatei übergeben und eventuell die Feldgrösse in der Datenbank ändern.
Allerdings wäre es dann sicher besser wenn Du die Bilderdateien uploaden würdest, so könntest Du noch Tipparbeit los werden, weil der Name schon existiert nur übernommen werden müsste.


als Antwort auf: [#258838]

Mit mysql klicks zählen und auf seite ausgeben

Bitfilme
Beiträge gesamt: 264

28. Okt 2006, 13:00
Beitrag # 10 von 12
Beitrag ID: #259083
Bewertung:
(9178 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Habe mal schnell ein Counter Kombi geschrieben, der wahlweise Links als Text und Bilder generiert und die Klicks natürlich zählt. Ein Uploader, der Tumbs erstellt, ist mit eingebaut


als Antwort auf: [#258865]

Mit mysql klicks zählen und auf seite ausgeben

bidu
Beiträge gesamt: 15

29. Okt 2006, 16:49
Beitrag # 11 von 12
Beitrag ID: #259193
Bewertung:
(9124 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Bitsoft
Besten Dank.
Was mich noch Intressieren würde, wie ich das ganze inTabellen Integrieren kann.
Als Beispiel vollgender link:
http://web12.sr1.emmewebhosting.ch/linktest.html

Gruss Bidu


als Antwort auf: [#259083]

Mit mysql klicks zählen und auf seite ausgeben

Bitfilme
Beiträge gesamt: 264

29. Okt 2006, 21:16
Beitrag # 12 von 12
Beitrag ID: #259226
Bewertung:
(9113 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wenn du das So machen willst musst Du auch die Drei Tabellenlinien auf einmal füllen. Dazu brauchts noch in der eintragen.php ein zwei Elemente mehr. ISt ein bischen ein grosser aufwand für die paar clicks.

Habe mir mal das ganze von Deiner Webseite angeschaut, die Seite zuerst mal korrigiert, wegen den fehler im Quellentext. Die sieht jetzt so aus:
Code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html>

<head>
<meta http-equiv="Content-Language" content="de-ch">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="description" content="HG Unterfrittenbach">
<title>HG Unterfrittenbach</title>
<style type="text/css">
body {
font-family: Arial, Verdana, Helvetica, sans-serif;
color: #000000;
background-color: #FFFFF3;
}

a:link {
font-family: Arial, Verdana,Helvetica, sans-serif;
font-size: 14pt;
font-weight: normal;
background-color: inherit;
color: #000000;
text-decoration: none;
}

a:visited {
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 14pt;
font-weight: normal;
background-color: inherit;
color: #000000;
text-decoration: none;
}

a:hover {
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 14pt;
font-weight: normal;
background-color: inherit;
color: #000000;
text-decoration: overline underline;
}

a:active {
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 14pt;
font-weight: normal;
background-color: inherit;
color: #000000;
text-decoration: none;
}

.ueberschrift {
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 18pt;
}

.gross {
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 16px;
font-weight: bold;
}

.standart {
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 14pt;
font-weight: normal;
}

.klein {
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
</style>
<script type="text/javascript" language="javascript">
<!--
function BlurLinks(){
lnks=document.getElementsByTagName('a');
for(i=0;i<lnks.length;i++){
lnks[i].onfocus=new Function("if(this.blur)this.blur()");
}
}

onload=BlurLinks;
-->
</script>

<base href="http://web12.sr1.emmewebhosting.ch">

</head>

<body>

<div align="center">
<div align="center">
<table border="0" width="90%" cellspacing="0" id="table1">
<tr>
<td width="178">&nbsp;</td>
<td width="338">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="178">&nbsp;</td>
<td width="338">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="178">&nbsp;</td>
<td width="338">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="178" class="ueberschrift">Links</td>
<td width="338">&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</div>
<table border="1" width="90%" id="table2" cellspacing="0" bordercolor="#000000">
<tr>
<td class="klein">Bild</td>
<td class="klein">Beschreibung</td>
<td width="362" class="klein">Downloads</td>
</tr>
<tr>
<td><a href="http://www.ehv.ch" target="_parent">
<img src="images/ehv.gif" width="174" height="80" border="0"></a></td>
<td><a href="http://www.ehv.ch/" target="_parent">Eidgenössischer
Hornusserverband</a><p>Zähler</td>
<td width="362">zb eine zip datei<p>Zähler</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td width="362">&nbsp;</td>
</tr>
<tr>
<td class="klein">Bild</td>
<td class="klein">Beschreibung</td>
<td width="362" class="klein">Downloads</td>
</tr>
<tr>
<td class="mittel"><a href="http://www.emmental-versicherung.ch/index.php" target="_parent">
<img src="images/logo_navi.gif" width="175" height="95" border="0"></a></td>
<td><a href="http://www.emmental-versicherung.ch/index.php" target="_parent">
Emmental Versicherung</a><p>Zähler</td>
<td width="362">zb eine zip datei<p>Zähler</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td width="362">&nbsp;</td>
</tr>
<tr>
<td class="klein">Bild</td>
<td class="klein">Beschreibung</td>
<td width="362" class="klein">Downloads</td>
</tr>
<tr>
<td><a href="http://www.funpps.ch" target="_parent">
<img src="images/fupps.jpg" width="174" height="80" border="0"></a></td>
<td><a href="http://www.funpps.ch" target="_parent">Powerpoint
Presentationen</a><p>Zähler</td>
<td width="362">zb eine zip datei<p>Zähler</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td width="362">&nbsp;</td>
</tr>
<tr>
<td class="klein">Bild</td>
<td class="klein">Beschreibung</td>
<td width="362" class="klein">Downloads</td>
</tr>
<tr>
<td><a href="http://www.landizollbrueck.ch" target="_parent">
<img src="images/logo_kl.jpg" width="140" height="107" border="0"></a></td>
<td><a href="http://www.landizollbrueck.ch" target="_parent">Landi
Zollbrück</a><p>Zähler</td>
<td width="362">zb eine zip datei<p>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td width="362">&nbsp;</td>
</tr>
<tr>
<td class="klein">Bild</td>
<td class="klein">Beschreibung</td>
<td width="362" class="klein">Downloads</td>
</tr>
<tr>
<td><a href="http://www.emmewebhosting.ch" target="_parent">
<img src="images/05.mp3" width="176" height="88" border="0"></a></td>
<td class="standart"><a href="http://www.emmewebhosting.ch" target="_parent">
Emmewebhosting</a> Speicherplatz für Ihre Homepage ab Fr. 1.50 im
Monat!<p>Zähler</td>
<td width="362">zb eine zip datei<p>Zähler</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td width="362">&nbsp;</td>
</tr>
</table>
</div>

</body>

</html>


Die ausgabe.php so:
Code
<?php 
function ausgabe(){
/* ---------- Zugangsdaten fuer die Datenbank ---------- */
require("connect.php");
require("config.php");

/*---------- Verbindung zum MySQL-Server aufbauen ---------- */
$db = mysql_connect($host, $user, $pass);

if ($db) {
mysql_select_db($datab, $db);
$sql = "SELECT * From $table ORDER BY link ASC";
$result = mysql_query($sql, $db);


/* ---------- Datenbank lesen und Ausgeben ---------- */
for($i=0; $i<mysql_num_rows($result); $i++){
$zeile = mysql_fetch_object($result);
if (file_exists($Original."/.".$zeile->link)){
$vz = $Original;
}
elseif (file_exists($ThumsErstellen."/".$zeile->link)){
$vz = $ThumsErstellen;
}

$_GET['link'] .= ' <tr>
<tr>
<td class="klein">Bild</td>
<td class="klein">Beschreibung</td>
<td width="362" class="klein">Downloads</td>
</tr>
<tr>
<td><a href="/count/counter.php?url='.$zeile->url.'" target="_parent">
<img src="'.$vz.'/'.$zeile->link.'" border="0"></a></td>
<td><a href="/count/counter.php?url='.$zeile->url.'" target="_parent">
'.$zeile->link.'</a><p>'.$zeile->count.'</td>
<td width="362"><a href="/count/counter.php?url='.$zeile->url.'">
'.$zeile->link.'</a><p>'.$zeile->count.'</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td width="362">&nbsp;</td>
</tr>

<td align="center">
<a href="/count/counter.php?url='.$zeile->url.'">
<img border="0" src="'.$vz.'/'.$zeile->link.'" width="'.$Hoehe.'" alt="Bild'.$i.'"></a></td>
<td align="center">Download '.$zeile->count.' mal</td>
</tr>'."\r\n";
}
}
/* ---------- Tabelle ergänzen, wenn keine Einträge in der Datenbank vorhanden sind ---------- */
if ($i == '0'){
$_GET['link'] .= ' <tr>
<td colspan="3">Keine Einträge vorhanden!</td>
</tr>'."\r\n";
}
}

/* ausgabe erfolgt mit: */
ausgabe();
if (file_exists("tpl/linkausgabe.php")){
require("tpl/linkausgabe.php");
}
?>

Den rest musst Du schon selber bearbeiten, da ich sonst Dein Web gleich selber schreiben kann.
Dies ist nicht der sinn der Sache!


als Antwort auf: [#259193]
X