crazMonkey
Grünschnabel
Hallo Leute hab da ein kleines aber sehr bescheidenes Problem, das ich mal schnell erleutere und hoffe jemand kann mir helfen Vorab: Sollte es fragen geben oder jemand mein geistiges "Wirwa" nicht ferstehen, einfach eine gezielte Frage stellen.
Dann fang ich mal an. Das Problem ist dies das ich eine Textdatei als Tabelle bzw. Datenbank verwende und diese mit PHP auslese um eine kleine "Topliste" auf einer Seite zur Verfügung zu stellen. Wieso ich eine Textdatei verwende und kein MySQL? Ganz einfach, ich möchte diese Topliste dann auch Leuten zur Verfügung stellen die selber kein MySQL auf ihrem Server haben bzw. keine Ahnung davon haben.
Das ist die Datenbank dat_anbieter:
Die Top 10 die aus der Base ausgelesen werden:
Bis hierhin klappt ja alles, die Top 10 werden nach Anzahl der Klicks sortiert und als Link ausgegeben. Nun soll das Script in der link.php den Wert der Klicks erhöhen (um 1) und diesen neuen Wert in die Base schreiben.
Code von link.php:
Soweit ist der Code vom link.php. Wurde jetzt schon zichmal geändert.
Das Problem ist jetzt das ich den neuen Wert des Klicks nicht in die Datenbank bekomme. Die einzigste Möglichkeit die mir eingefallen ist und auch funktoniert hat war das ich jedesmal die Datenbank leere und neu beschreibe, ein Bruchteil davon ist im derzeitigen Code ja noch zu sehen. Dadurch ergibt sich nur das Problem das wenn die Base größer ist dauert das eine weile und das will ich keinem zumuten wollen
Hoffe alles ist verständlich und ihr könnt mir helfen.
Gruß Monkey
Dann fang ich mal an. Das Problem ist dies das ich eine Textdatei als Tabelle bzw. Datenbank verwende und diese mit PHP auslese um eine kleine "Topliste" auf einer Seite zur Verfügung zu stellen. Wieso ich eine Textdatei verwende und kein MySQL? Ganz einfach, ich möchte diese Topliste dann auch Leuten zur Verfügung stellen die selber kein MySQL auf ihrem Server haben bzw. keine Ahnung davon haben.
Das ist die Datenbank dat_anbieter:
Code:
1|001|Mir|Test1|http://test.de|Bla Bla Nicht toll|278|00.00.00
2|002|Mir|ba|http://test.de|Bla Bla Nicht toll2|7|00.00.00
3|001|Mir|sadfsda|http://test.de|Bla Bla Nicht toll3|9|00.00.00
4|006|Mir|asd|http://test.de|Bla Bla Nicht toll4|1|00.00.00
5|039|Mir|sdaf|http://test.de|Bla Bla Nicht tol5l|1|00.00.00
6|006|Mir|asdf|http://test.de|Bla Bla Nicht toll6|1|00.00.00
7|005|Mir|asdf|http://test.de|Bla Bla Nicht tol234l|1|00.00.00
8|001|Mir|sadf|http://test.de|Bla Bla Nicht tol234l|3|00.00.00
9|007|Mir|asdert|http://test.de|Bla Bla Nicht to234ll|4|00.00.00
10|009|Mir|12345678901|http://test.de|Bla Bla Nicht to234ll|638|00.00.00
11|010|Mir|sdaf|http://test.de|Bla Bla Nicht to8765ll|1800|00.00.00
12|111|Mir|fasdf|http://test.de|Bla Bla Nicht wttoll|99|00.00.00
13|001|Mir|wert|http://test.de|Bla Bla Nicht tewtoll|2|00.00.00
18|002|Mir|zrew|http://test.de|Bla Bla Nicht toll|22|00.00.00
Die Top 10 die aus der Base ausgelesen werden:
Code:
$anzahls_array = array();
$bank = file("dbase/dat_anbieter");
for($x=0;$x<count($bank);$x++) {
$spalte = explode ("|",$bank[$x]);
$zeile=$spalte[6]."|".$spalte[3]."|".$spalte[0];
array_push($anzahls_array,$zeile);
}
arsort($anzahls_array,SORT_NUMERIC);
$x = 1;
foreach($anzahls_array as $y) {
$daten = explode ("|", $y);
if($x!=11) {
echo "<a href=\"link.php?lid=".$daten[2]."\" target=\"_blank\">".$x.". ".$daten[1]." (".trim($daten[0]).")</a></br>";
$x++;
}
}
Bis hierhin klappt ja alles, die Top 10 werden nach Anzahl der Klicks sortiert und als Link ausgegeben. Nun soll das Script in der link.php den Wert der Klicks erhöhen (um 1) und diesen neuen Wert in die Base schreiben.
Code von link.php:
Code:
$bank = file("dbase/dat_anbieter");
foreach($bank as $zeile) {
list($lid,$kid,$von,$name,$link,$besch,$klicks,$datum) = explode("|",$zeile);
$link_link[$lid] = $link;
$link_name[$lid] = $name;
$link_klicks[$lid] = $klicks;
}
$link_klicks[$_GET['lid']]++;
for($x=0;$x<count($bank);$x++) {
$spalte = explode("|",$bank[$x]);
if($spalte[0]==$_GET['lid']) {
echo $spalte[0]."|".$spalte[1]."|".$spalte[2]."|".$spalte[3]."|".$spalte[4]."|".$spalte[5]."|".$link_klicks[$_GET['lid']]."|".$spalte[7]."</br>";
} else {
echo $spalte[0]."|".$spalte[1]."|".$spalte[2]."|".$spalte[3]."|".$spalte[4]."|".$spalte[5]."|".$spalte[6]."|".$spalte[7]."</br>";
}
}
if(empty($_GET['lid'])) {
echo "Es wurde keine ID übergeben</br>";
} else {
if(empty($link_link[$_GET['lid']])) {
echo "Die ID ".$_GET['lid']." ist ungültig";
} else {
/*echo "<html>
<head>
<title>".$link_name[$_GET['lid']]."</title>
<head>
<frameset framespacing=\"0\" border=\"false\" rows=\"30,*\" frameborder=\"0\">
<frame name=\"haftung\" scrolling=\"no\" noresize src=\"bla.html\" marginwidth=\"0\" marginheight=\"0\" frameborder=\"0\" border=\"0\">
<frame name=\"anbieter\" src=\"".$link_link[$_GET['lid']]."\" marginwidth=\"0\" marginheight=\"0\" frameborder=\"0\" border=\"false\">
<noframes>
Ihr Browser kann diese Seite leider nicht anzeigen!
</noframes>
</frameset>
</head>
</html>";*/
}
}
Soweit ist der Code vom link.php. Wurde jetzt schon zichmal geändert.
Das Problem ist jetzt das ich den neuen Wert des Klicks nicht in die Datenbank bekomme. Die einzigste Möglichkeit die mir eingefallen ist und auch funktoniert hat war das ich jedesmal die Datenbank leere und neu beschreibe, ein Bruchteil davon ist im derzeitigen Code ja noch zu sehen. Dadurch ergibt sich nur das Problem das wenn die Base größer ist dauert das eine weile und das will ich keinem zumuten wollen
Hoffe alles ist verständlich und ihr könnt mir helfen.
Gruß Monkey
Zuletzt bearbeitet: