Hallo W3C,
ich besitze gar kein Wissen über Datenbanken ich besitze gerade mal Wissen über ein paat PHP Befehle...
Gut, dann weiß ich wo ich anfangen kann.
Deshalb wäre es nett wenn du mir noch mal eine Nähere Erleuterung gibst was es mit diesen Tabellen auf sich hat...
In einer Datenbank kann man Informationen in tabellarischer Form speichern. Du definierst vorher, welche Spalten diese Tabelle hat. Danach kannst Du mit sog. SQL-Abfragen die Daten in dieser Tabelle auslesen, ändern, löschen oder auch neue Datensätze hinzufügen.
Schau Dich mal auf http://tut.php-q.net/mysql.html um, dort gibt es in der linken Spalte mehrere Tutorials, die alle mit MySQL anfangen, zu diesem Thema. Wenn Du dort etwas nicht verstehst, kannst Du natürlich gerne hier nochmal fragen.
In Deinem Beispiel für den Counter würdest Du als erstes eine Tabelle counter anlegen:
mysql> create table counter (id INT NOT NULL PRIMARY KEY auto_increment, url VARCHAR(255), count INT);
Query OK, 0 rows affected (0.01 sec)
Dann würdest Du alle Links, die Du haben willst, in die Datenbank einfügen:
mysql> insert into counter (url, count) VALUES ('http://selfhtml.teamone.de/', 0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into counter (url, count) VALUES ('http://selfaktuell.teamone.de/', 0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into counter (url, count) VALUES ('http://forum.de.selfhtml.org/', 0);
Query OK, 1 row affected (0.00 sec)
Du kannst dann erst einmal sehen, wie die Tabelle daraufhin aussieht:
mysql> select * from counter ;
+----+--------------------------------+-------+
| id | url | count |
+----+--------------------------------+-------+
| 1 | http://selfhtml.teamone.de/ | 0 |
| 2 | http://selfaktuell.teamone.de/ | 0 |
| 3 | http://forum.de.selfhtml.org/ | 0 |
+----+--------------------------------+-------+
3 rows in set (0.02 sec)
Wenn Du nun folgendes SQL-Statement von PHP an MySQL weitergibst, dann erhälst Du als Ergebnis die URL, die sich hinter der ID verbirgt, die über den URL-Parameter id übergeben wird: (vorher sollte natürlich die MySQL-Verbindung bereits aufgebaut sein, dazu siehe den Link)
$query = "SELECT url FROM counter WHERE id = '".mysql_escape_string($_GET['id'])."'";
$result = mysql_query ($query);
if ($result === false) {
// fehler - meldung ausgeben
exit; // oder etwas ähnliches
}
$row = mysql_fetch_array ($result);
if ($row === false) {
// id existiert nicht - meldung ausgeben
exit; // oder etwas ähnliches
}
Da Du nun weißt, dass die ID existiert, kannst Du die Anzahl bei dieser ID erhöhen:
$query = "UPDATE counter SET count = count + 1 WHERE id = '".mysql_escape_string($_GET['id'])."'";
$result = mysql_query ($query);
if ($result === false) {
// fehler - meldung ausgeben
exit; // oder etwas ähnliches
}
Nun kannst Du mit der Header-Funktion eine Weiterleitung senden:
Header ('Location: ' . $row['url']);
Viele Grüße,
Christian