PHP und Zähler
Jessi
- php
0 Bert Randolf0 Tom0 Dieter Raber0 Jessi0 martin
Guten Abend euch allen,
hab da mal eine Frage. Ich will in einer Datenbank etwas speichern. Um grnauer zu sein will ich wissen wie oft meine Seite besucht worden ist. Dazu habe ich jetzt in der Datenbank eine Tabelle angelegt die heißt besucht und darin sind drei Spalten eine ist ID dann kommt Seite und dann wie_oft
jetzt kommt aber meine Frage. Wie bekomme ich PHP dazu, dass er den Wert immer eines nach oben setzt wenn die Seite aufgerufen wird? Kann mir da mal jemand helfen?
Wünsch euch allen noch einen schönen Guten Abend.
Gruß Jessi
Hallo,
schau mal in der Dokumentation zu deiner Datenbank nach UPDATE.
Bert
Hello,
Guten Abend euch allen,
jetzt kommt aber meine Frage. Wie bekomme ich PHP dazu, dass er den Wert immer eines nach oben setzt wenn die Seite aufgerufen wird? Kann mir da mal jemand helfen?
Das ist Aufgabe der Datenbank, wenn Du schon für so eine einfache Aufgabe eine einsetzen willst.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
jupp will ich :-) Hmm aber ich muss doch der DB sagen, dass die immer eines nach oben zählt oder etwa nicht? Klar sonst bleibt ja immer alles auf 0 stehen * grummel *
Hallo Jessi,
jupp will ich :-) Hmm aber ich muss doch der DB sagen, dass die immer eines nach oben zählt oder etwa nicht? Klar sonst bleibt ja immer alles auf 0 stehen
Man könnte dir dabei wahrscheinlich helfen, wenn du den Typ des von dir verwendeten Datenbank-Systems verrätst.
Schöne Grüße,
Johannes
Hallo Johannes,
ich verwende eine SQL Datenbank :-)
Gruß Jessi
Hallo Jessi,
ich verwende eine SQL Datenbank :-)
Dann gibt es das AUTO_INCREMENT-Attribut.
http://www.php-faq.de/q/q-mysql-auto-increment.html
http://www.php-faq.de/q/q-mysql-inkrement.html
Gruß, Thoralf
Hallo Jessi,
ich verwende eine SQL Datenbank :-)
Dann gibt es das AUTO_INCREMENT-Attribut.
http://www.php-faq.de/q/q-mysql-auto-increment.html
http://www.php-faq.de/q/q-mysql-inkrement.html
Nein, in diesem Fall ist das nicht nützlich. Es geht darum den Wert eines _einzigen_ Feldes bei jedem UPDATE um den Wert 1 zu erhöhen, nicht in einer Spalte, bei jedem neuen Eintrag um 1 hochzuzählen.
Außerdem ist AUTO_INCREMENT eine Erweiterung von MySQL und existiert im Standard SQL nicht, deshalb wird dies bei anderen Datenbanken wahrscheinlich nicht funktionieren.
Schöne Grüße,
Johannes
Hallo Johannes,
Nein, in diesem Fall ist das nicht nützlich. Es geht darum den Wert eines _einzigen_ Feldes bei jedem UPDATE um den Wert 1 zu erhöhen, nicht in einer Spalte, bei jedem neuen Eintrag um 1 hochzuzählen.
Stimmt. Da bin ich durcheinandergekommen. Zu lange Pause gemacht. ;)
Außerdem ist AUTO_INCREMENT eine Erweiterung von MySQL und existiert im Standard SQL nicht, deshalb wird dies bei anderen Datenbanken wahrscheinlich nicht funktionieren.
Hm. Irgendwo in dem Post stand mal, ich würde mySQL unterstellen. War bestimmt ein Bielefelder dran. ;)
Gruß, Thoralf
Hello,
Hm. Irgendwo in dem Post stand mal, ich würde mySQL unterstellen. War bestimmt ein Bielefelder dran. ;)
Was hat der Bielefelder Dir unterstellt, dass Du es MySQL(R)[1] unterstellst?
<img src="http://www.mysql.de/common/logos/powered-by-mysql-125x64.png" border="0" alt="">
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
N'Abend,
Hm. Irgendwo in dem Post stand mal, ich würde mySQL unterstellen. War bestimmt ein Bielefelder dran. ;)
Was hat der Bielefelder Dir unterstellt, dass Du es MySQL(R)[1] unterstellst?
Nee, ich war sicher, ich hätte geschrieben, ich bezöge mich auf MySQL mangels anderslautender Auskunft der OP. Und da es Bielefeld nicht gibt[1][2], muss es ein Bielefelder sein, der diese (Halb-)Satz aus meinem Posting hat verschwinden lassen. Und Du bist ja in http://www.annerschbarrich.de. ;)
Gruß, Thoralf
[1] http://fsinfo.cs.uni-sb.de/~abe/mirrors/bielefeld.html
[2] http://www.google.de/search?hl=de&q=bielefeld+verschwörung&btnG=Google-Suche&meta= <-- ich hab schon wieder vergessen, warum das Forenscript den Link nicht umsetzt, & war es nicht. ;)
Hello,
[...] (Halb-)Satz aus meinem Posting hat verschwinden lassen. Und Du bist ja in http://www.annerschbarrich.de. ;)
Ich mach hier meine eigene Verschwörung und verschwinde dann mit einem Halbsatz *haha*
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
Ich mach hier meine eigene Verschwörung und verschwinde dann mit einem Halbsatz *haha*
^^ Was soll ich darauf jetzt antworten?
Gruß, Thoralf
Hallo Jessi,
UPDATE tabellenname SET wie_oft = wie_oft +1 WHERE seite... oder was immer hier Deine Kriterien sind
Dieter
Hello,
Hallo Jessi,
UPDATE tabellenname SET wie_oft = wie_oft +1 WHERE seite... oder was immer hier Deine Kriterien sind
Das geht aber nur bei SQL-Datenbanken. Es gibt auch noch andere.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
ich hab eine SQL Datenbank
Gruß Jessi
Ach scheiße das geht nicht :-(
Hallo Jessi,
Ach scheiße das geht nicht :-(
_Was_ geht nicht? Was bedeutet »geht nicht« konkret?
Schöne Grüße,
Johannes
Hi,
das mit dem Eintragen geht nicht :-(
Hallo Jessi,
das mit dem Eintragen geht nicht :-(
Ich wiederhole meine Frage: Was heißt geht nicht? Kommen irgendwelche Fehlermeldungen? Hast du schon mal im Error-Log des Webservers und der Datenbank geguckt? Was passiert, wenn du den Query von Hand an die Datenbank sendest?
Schöne Grüße,
Johannes
Hallo Johannes,
hab das mal genommen und das so angepasst aber das geht dann nicht
<?php
UPDATE zaehler SET wie_oft=wie_oft +1 WHERE privat
?>
Hallo
<?php
UPDATE zaehler SET wie_oft=wie_oft +1 WHERE privat
?>
WHERE privat ... Was ist denn mit privat?
Sei mir nicht böse, aber ich habe den Eindruck, dass du noch nicht weißt, wohin du willst.
Ich empfehle dir zur Lektüre http://www.schattenbaum.net/php/mstart.php.
Dort wird auch das Ändern von Datensätzen erklärt.
Tschö, Auge
Hallo Jessi, trotz langer Debatten ist Dein Problem wohl nicht gelöst.
Da der Server "http://www.dclp-faq.de/q/q-code-klick-zaehler.html" z. Zt. nicht erreichbar ist, maile ich Dir den kompletten Code:
de.comp.lang.php.* FAQ
25.8. Wie kann ich zählen, wie oft auf einen Link geklickt wurde?
Keywords: Link | Counter
Antwort von Martin Jansen
Dem Skript liegt folgende Struktur der MySQL-Tabelle zugrunde:
mysql> describe counter;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | | PRI | 0 | auto_increment |
| url | char(255) | | | | |
| count | int(11) | | | 0 | |
+-------+------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
Das Feld url enthält die URL, die aufgerufen wird. Das Feld count enthält die Anzahl der Klicks auf url.
<?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";
// Die per GET übergebene URL einlesen und datenbanksicher machen
$url = addslashes($_GET['url']);
// 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);
// Noch kein Eintrag für die URL vorhanden?
if (mysql_affected_rows() == 0) {
$sql_insert = "INSERT INTO $table (url, count) VALUES ('$url', '1')";
@mysql_query($sql_insert);
}
}
}
// Auf übergebene URL weiterleiten
Header("Location: " . $_GET['URL']);
?>
Anwendungsbeispiel:
<a href="count.php?url=http://www.martin-jansen.de">Link</a>
Als Parameter für die Datei count.php wird die URL übergeben, auf die weitergeleitet werden soll. In count.php wird nun der Datensatz in der Tabelle, der $url als Wert für das Feld url enthält um 1 erhöht und es wird auf die neue URL weitergeleitet.
Viele Grüsse martin
Hallo Martin,
Da der Server "http://www.dclp-faq.de/q/q-code-klick-zaehler.html" z. Zt. nicht erreichbar ist, maile ich Dir den kompletten Code:
Probier's mal mit http://www.php-faq.de/q/q-code-klick-zaehler.html.
Schöne Grüße,
Johannes