PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ladezeit im Klick4-Bereich



Baumeister
21.06.2007, 00:15
Hallo zusammen

Habe wieder mal ein Problem die Ladezeit der Banner dauert einafch zulange..

Hilfe


<? userstatus();
head("Paidbanner";);

$max_banner = mysql_fetch_array(db_query("SELECT `max_forced` FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']."";));
$fbanner = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE menge >='1' and werbeart = 'forcedbanner' and sponsor != '".$_SESSION['uid']."' and `verdienst` >0 and status = '1' ORDER BY verdienst DESC";);
$stat_gesamt = 0;
$stat_verguetung = 0;
$stat_aufenthalt = 0;
$stat_reload = 0;


while($fa=mysql_fetch_array($fbanner)){
$int_reload = db_query("SELECT * FROM ".$db_prefix."_reloads WHERE tan='".$fa['tan']."' and (uid='".$_SESSION['uid']."' or ip='".$ip."') and bis >= ".time()."";);
$stat_gesamt++;
$stat_verguetung = $stat_verguetung+$fa['verdienst'];
$stat_aufenthalt = $stat_aufenthalt+$fa['aufendhalt'];
if (mysql_num_rows($int_reload) > 0) { $stat_reload++; }
}
echo "<center><b>";
echo "Aktive Paidbanner: ".number_format(($stat_gesamt-$stat_reload),0,',','.')." | Reloadsperre: ".number_format($stat_reload,0,',','.');
echo " <br /> ";
echo "Ø Aufenthalt: ".number_format(($stat_aufenthalt/$stat_gesamt),2,',','.')." Sek. | ";
echo "Ø Durchlauf: ".number_format(($stat_gesamt*(($stat_verguetung-$minusbanner)/$stat_gesamt)),2,',','.')." ".$waehrung." | ";
echo "Ø Vergütung: ".number_format((($stat_verguetung)/$stat_gesamt),2,',','.')." ".$waehrung;
echo "</center></b><br />";

mysql_data_seek($fbanner, 0);
//$forcedbanner = db_query("SELECT tan,banner,reload,verdienst,aufendhalt FROM ".$db_prefix."_gebuchte_werbung WHERE menge >='1' and werbeart = 'forcedbanner' and status = '1' and sponsor != '".$_SESSION['uid']."' ORDER BY verdienst DESC";);
$nextreload = 0;
while($f_banner=mysql_fetch_array($fbanner)){
$int_reload = db_query("SELECT bis FROM ".$db_prefix."_reloads WHERE tan='".$f_banner['tan']."' and (uid='".$_SESSION['uid']."' or ip='".$ip."') and bis >= ".time()."";);
if (!mysql_num_rows($int_reload) && $x_banner <= ($max_banner['max_forced']-1)) {
echo '<div align="center" id="banner_'.$x_banner.'"><a href="fc.php?tan='.$f_banner['tan'].'" target="_blank"><img src="'.$f_banner['banner'].'" border="1" height="60" width="468" alt="'.$f_banner['tan'].'" onClick="document.getElementById(\'banner_'.$x_banner.'\'). style.display=\'none\';"></a><br>Reload:'. $f_banner['reload']/3600 .' Std. | Verdienst: '.number_format($f_banner['verdienst'],2,',','.').' | Aufendhalt:'.$f_banner['aufendhalt'].' Sekunden<br><br></div>';
$x_banner++;
} else {
$int_reload = db_query("SELECT bis FROM ".$db_prefix."_reloads WHERE (uid='".$_SESSION['uid']."' or ip='".$ip."') and bis >= ".time()." ORDER BY bis ASC";);
$reload = mysql_fetch_object ($int_reload);
if ($reload->bis > $nextforced) { $nextforced = $reload->bis; }
}
}
if ($x_banner <= 0) {
echo '<div align="center"><font color="#FF0000"><b>Alle Forcedbanner im Reload !</b></font>';

MK75
21.06.2007, 00:25
http://www.designerscripte.net/jgs_db.php?action=show&eintrags_id=151&sid=

Baumeister
21.06.2007, 11:39
wird auch nicht schneller

Hilfe

DimpleX
21.06.2007, 11:53
mal den "Überhang" entfernen und auch index setzen in der DB

SQL-Befehl:

OPTIMIZE TABLE `vms_gebuchte_werbung`

und

OPTIMIZE TABLE `vms_reloads`


die optimierung/überhang entfernen sollte regelmässig ausgeführt werden






mfg
DimpleX

hatty
21.06.2007, 13:17
Original von Baumeister
wird auch nicht schneller

Hilfe

indexe setzen dann wird sie westlich schnelle.



CREATE INDEX tan_werbeart_status ON vms_gebuchte_werbung(tan,werbeart,status);

CREATE INDEX menge_werbeart_status_uid ON vms_gebuchte_werbung(menge,werbeart,status,uid);

CREATE INDEX werbeart_verdienst ON vms_gebuchte_werbung(werbeart,verdienst);

CREATE INDEX werbeart_verdienst ON vms_gebuchte_werbung(werbeart,verdienst);

CREATE INDEX werbeart_status ON vms_gebuchte_werbung(werbeart,status);

CREATE INDEX werbeart_menge ON vms_gebuchte_werbung(werbeart,menge);

CREATE INDEX reload_werbeart ON vms_gebuchte_werbung(reload,werbeart);

CREATE INDEX sponsor_werbeart ON vms_gebuchte_werbung(sponsor,werbeart);



diese indexe setzen dann müste deine Paidbanner rennen wie sau :)

dude32
21.06.2007, 13:17
Original von DimpleX
mal den "Überhang" entfernen und auch index setzen in der DB

SQL-Befehl:

OPTIMIZE TABLE `vms_gebuchte_werbung`

und

OPTIMIZE TABLE `vms_reloads`


die optimierung/überhang entfernen sollte regelmässig ausgeführt werden






mfg
DimpleX

frage: was meinst du mit überhang???

hatty
21.06.2007, 13:23
damit meint er wenn die crons laufen dann ensteht beim speicherplatz ein überhang

Überhang 2.076 Bytes

wenn man die datenbank dann mit

OPTIMIZE TABLE `vms_gebuchte_werbung`

bearbeitet wird der überhang gelöscht und die tabelle wird kleiner und somit schneller.

DimpleX
21.06.2007, 14:28
jup


habe dude32 das auch schön step by step via voice erklärt , einfach schnell und effektiv


DimpleX

Baumeister
21.06.2007, 22:01
Original von hatty

Original von Baumeister
wird auch nicht schneller

Hilfe

indexe setzen dann wird sie westlich schnelle.



CREATE INDEX tan_werbeart_status ON vms_gebuchte_werbung(tan,werbeart,status);

CREATE INDEX menge_werbeart_status_uid ON vms_gebuchte_werbung(menge,werbeart,status,uid);

CREATE INDEX werbeart_verdienst ON vms_gebuchte_werbung(werbeart,verdienst);

CREATE INDEX werbeart_verdienst ON vms_gebuchte_werbung(werbeart,verdienst);

CREATE INDEX werbeart_status ON vms_gebuchte_werbung(werbeart,status);

CREATE INDEX werbeart_menge ON vms_gebuchte_werbung(werbeart,menge);

CREATE INDEX reload_werbeart ON vms_gebuchte_werbung(reload,werbeart);

CREATE INDEX sponsor_werbeart ON vms_gebuchte_werbung(sponsor,werbeart);



diese indexe setzen dann müste deine Paidbanner rennen wie sau :)


wo und wie ändere ich das

Baumeister
21.06.2007, 22:09
Ok der index in den Tabellen ist gesetzt.

Überhang ist weg.

Trozdem nicht schneller


Hilfe

hatty
22.06.2007, 00:25
Original von Baumeister
Ok der index in den Tabellen ist gesetzt.

Überhang ist weg.

Trozdem nicht schneller


Hilfe

dann am besten einen neuen Hoster suchen !!! wenn das alles nicht hilft.

Gremlin
22.06.2007, 00:43
Du hast noch den "normalen" Klick4Bereich drin, das datenbankabfragenfressende-etwas :D so wie er bei dir ist, benötigt er

MaxBanner+1 Abfragen bei jedem aktualisieren ;) Hier ist eine klick4.php welche das mit einer Abfrage löst... das dürfte alles nochmal enorm schneller machen.. :)


*edit*
Code nun auf Seite 2


Gruß
Gremlin

dude32
22.06.2007, 10:12
eingebaut , getestet und siehe da.................... kein banner :(

Gremlin
22.06.2007, 13:02
Original von dude32
eingebaut , getestet und siehe da.................... kein banner :(

Jup, hatte nen kleinen Denkfehler drin.... hier nun der richtige Code, bitte trotzdem vorher ein Backup machen, ich habe ihn nur hier local getestet...


<?
userstatus();
head("Paidbanner");

$usr = mysql_fetch_array(db_query("SELECT `max_forced` FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));

$fbanner = db_query ("SELECT t1.*
FROM ".$db_prefix."_gebuchte_werbung t1
LEFT JOIN ".$db_prefix."_reloads t2
ON (t1.tan=t2.tan AND (t2.uid='".$_SESSION['uid']."' or t2.ip='".$ip."'))
WHERE t1.menge >='1' and t1.werbeart = 'forcedbanner' and t1.status = '1' AND t1.verdienst > 0 and t1.sponsor != '".$_SESSION['uid']."' AND t2.tan IS NULL ORDER BY verdienst DESC LIMIT ".$usr['max_forced']."");

while($f_banner=mysql_fetch_array($fbanner)){
echo '<div align="center" id="banner_'.$x_banner.'"><a href="fc.php?tan='.$f_banner['tan'].'" target="_blank"><img src="'.$f_banner['banner'].'" border="0" height="60" width="468" alt="'.$f_banner['tan'].'" onClick="document.getElementById(\'banner_'.$x_banner.'\'). style.display=\'none\';"></a><br>Reload:'. $f_banner['reload']/3600 .' Std. | Verdienst: '.number_format($f_banner['verdienst'],2,',','.').' | Aufendhalt:'.$f_banner['aufendhalt'].' Sekunden<br><br></div>';
$x_banner++;
}

echo '<div align="center"><form action="" method="post"><input type="Submit" name="mehr_banner" value="Weitere Banner !"></form></div>';

foot();
?>

Dreamerweb
22.06.2007, 14:25
Hallo

Habe den Code mal eingebaut und getestet.

Funktioniert sehr gut bis auf ein Problem.

Es sind immer von den 20 Bannern 6 bis 7 nicht zu sehen.
Sie sind zwar da man kann sie auch klicken aber zusehen ist eben nichts.

MFG

Gremlin
22.06.2007, 14:35
Das liegt aber dann nicht an dem php Code, denn sie werden einfach per <img src=""> wie gewöhnlich eingebunden ^^

Gruß
Gremlin

Dreamerweb
22.06.2007, 14:45
Original von Gremlin
Das liegt aber dann nicht an dem php Code, denn sie werden einfach per <img src=""> wie gewöhnlich eingebunden ^^

Gruß
Gremlin


Hallo

Dein Code funktioniert perfekt. War nur bei mir ein Problem mit meinem Browser.

Also dankeschön für den Code.

MFG

Baumeister
22.06.2007, 22:58
Original von Gremlin

Original von dude32
eingebaut , getestet und siehe da.................... kein banner :(

Jup, hatte nen kleinen Denkfehler drin.... hier nun der richtige Code, bitte trotzdem vorher ein Backup machen, ich habe ihn nur hier local getestet...


<?
userstatus();
head("Paidbanner");

$usr = mysql_fetch_array(db_query("SELECT `max_forced` FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));

$fbanner = db_query ("SELECT t1.*
FROM ".$db_prefix."_gebuchte_werbung t1
LEFT JOIN ".$db_prefix."_reloads t2
ON (t1.tan=t2.tan AND (t2.uid='".$_SESSION['uid']."' or t2.ip='".$ip."'))
WHERE t1.menge >='1' and t1.werbeart = 'forcedbanner' and t1.status = '1' AND t1.verdienst > 0 and t1.sponsor != '".$_SESSION['uid']."' AND t2.tan IS NULL ORDER BY verdienst DESC LIMIT ".$usr['max_forced']."");

while($f_banner=mysql_fetch_array($fbanner)){
echo '<div align="center" id="banner_'.$x_banner.'"><a href="fc.php?tan='.$f_banner['tan'].'" target="_blank"><img src="'.$f_banner['banner'].'" border="0" height="60" width="468" alt="'.$f_banner['tan'].'" onClick="document.getElementById(\'banner_'.$x_banner.'\'). style.display=\'none\';"></a><br>Reload:'. $f_banner['reload']/3600 .' Std. | Verdienst: '.number_format($f_banner['verdienst'],2,',','.').' | Aufendhalt:'.$f_banner['aufendhalt'].' Sekunden<br><br></div>';
$x_banner++;
}

echo '<div align="center"><form action="" method="post"><input type="Submit" name="mehr_banner" value="Weitere Banner !"></form></div>';

foot();
?>

So geht es schon mal super schnell.

Nur das ich jetzt das pro. habe das mein Bonus nicht mehr gezalt wird und auch die Anzeige verschwunden ist.

Gremlin wo kann o. wie kann ich denn Code von dir einsetzt so das er da rein passt.



<? userstatus();
head("Paidbanner";);

$max_banner = mysql_fetch_array(db_query("SELECT `max_forced` FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']."";));
$fbanner = db_query("SELECT * FROM ".$db_prefix."_gebuchte_werbung WHERE menge >='1' and werbeart = 'forcedbanner' and sponsor != '".$_SESSION['uid']."' and `verdienst` >0 and status = '1' ORDER BY verdienst DESC";);
$stat_gesamt = 0;
$stat_verguetung = 0;
$stat_aufenthalt = 0;
$stat_reload = 0;


while($fa=mysql_fetch_array($fbanner)){
$int_reload = db_query("SELECT * FROM ".$db_prefix."_reloads WHERE tan='".$fa['tan']."' and (uid='".$_SESSION['uid']."' or ip='".$ip."') and bis >= ".time()."";);
$stat_gesamt++;
$stat_verguetung = $stat_verguetung+$fa['verdienst'];
$stat_aufenthalt = $stat_aufenthalt+$fa['aufendhalt'];
if (mysql_num_rows($int_reload) > 0) { $stat_reload++; }
}
echo "<center><b>";
echo "Aktive Paidbanner: ".number_format(($stat_gesamt-$stat_reload),0,',','.')." | Reloadsperre: ".number_format($stat_reload,0,',','.');
echo " <br /> ";
echo "Ø Aufenthalt: ".number_format(($stat_aufenthalt/$stat_gesamt),2,',','.')." Sek. | ";
echo "Ø Durchlauf: ".number_format(($stat_gesamt*(($stat_verguetung-$minusbanner)/$stat_gesamt)),2,',','.')." ".$waehrung." | ";
echo "Ø Vergütung: ".number_format((($stat_verguetung)/$stat_gesamt),2,',','.')." ".$waehrung;
echo "</center></b><br />";

mysql_data_seek($fbanner, 0);
//$forcedbanner = db_query("SELECT tan,banner,reload,verdienst,aufendhalt FROM ".$db_prefix."_gebuchte_werbung WHERE menge >='1' and werbeart = 'forcedbanner' and status = '1' and sponsor != '".$_SESSION['uid']."' ORDER BY verdienst DESC";);
$nextreload = 0;
while($f_banner=mysql_fetch_array($fbanner)){
$int_reload = db_query("SELECT bis FROM ".$db_prefix."_reloads WHERE tan='".$f_banner['tan']."' and (uid='".$_SESSION['uid']."' or ip='".$ip."') and bis >= ".time()."";);
if (!mysql_num_rows($int_reload) && $x_banner <= ($max_banner['max_forced']-1)) {
echo '<div align="center" id="banner_'.$x_banner.'"><a href="fc.php?tan='.$f_banner['tan'].'" target="_blank"><img src="'.$f_banner['banner'].'" border="1" height="60" width="468" alt="'.$f_banner['tan'].'" onClick="document.getElementById(\'banner_'.$x_banner.'\'). style.display=\'none\';"></a><br>Reload:'. $f_banner['reload']/3600 .' Std. | Verdienst: '.number_format($f_banner['verdienst'],2,',','.').' | Aufendhalt:'.$f_banner['aufendhalt'].' Sekunden<br><br></div>';
$x_banner++;
} else {
$int_reload = db_query("SELECT bis FROM ".$db_prefix."_reloads WHERE (uid='".$_SESSION['uid']."' or ip='".$ip."') and bis >= ".time()." ORDER BY bis ASC";);
$reload = mysql_fetch_object ($int_reload);
if ($reload->bis > $nextforced) { $nextforced = $reload->bis; }
}
}
if ($x_banner <= 0) {
echo '<div align="center"><font color="#FF0000"><b>Alle Forcedbanner im Reload !</b></font>';

MasterG
22.06.2007, 23:27
Möchte mich hier mal anschließen. Also lädt bei mir leider auch lange. Habe alles gemacht, außer:
CREATE INDEX tan_werbeart_status ON vms_gebuchte_werbung(tan,werbeart,status);

CREATE INDEX menge_werbeart_status_uid ON vms_gebuchte_werbung(menge,werbeart,status,uid);

CREATE INDEX werbeart_verdienst ON vms_gebuchte_werbung(werbeart,verdienst);

CREATE INDEX werbeart_verdienst ON vms_gebuchte_werbung(werbeart,verdienst);

CREATE INDEX werbeart_status ON vms_gebuchte_werbung(werbeart,status);

CREATE INDEX werbeart_menge ON vms_gebuchte_werbung(werbeart,menge);

CREATE INDEX reload_werbeart ON vms_gebuchte_werbung(reload,werbeart);

CREATE INDEX sponsor_werbeart ON vms_gebuchte_werbung(sponsor,werbeart);

Wenn ich das ausführe kommt:
#1061 - Duplicate key name 'tan_werbeart_status'

Gremlin
22.06.2007, 23:55
CREATE INDEX tan_werbeart_status ON vms_gebuchte_werbung(tan,werbeart,status);

Einfach weglassen, da du bereits einen Index mit dem Namen tan_werbeart_status erstellt hast ^^

@Baumeister
Welchen Bonus meinst du?
Die Statistik braucht nur unnötige DB Abfrage ;) aber kann ich bei Bedarf gerne auch noch dazumachen ;)

jr-coolman
23.06.2007, 07:38
Bei mir hat das Prima geklappt.

Danke

SebbyPHM
23.06.2007, 09:10
Hehe, jetzt gebe ich dazu auch mal ein paar Kommentare ab :D

1. Das sind viel zu viele Indexes für die Tabelle bzw. für die Spalte werbeart. Eigentlich sollte reichen: vms_reloads auf tan, uid, ip und bei der Tabelle vms_gebuchte_werbung auf werbeart, sponsor, status, verdienst, menge.
2. (@Gremlin) Man sollte in einer Where-Abfrage die Bedingungen, welche am ehesten zutreffen, am Anfang schreiben. So sollte z.B. t2.tan IS NULL am Anfang einer solchen stehen, da die Bedingung bei den Klickern am meisten geprüft wird und MySQL somit die nächsten bedingungen nicht unnötig prüft. Effekt: Ladezeit gespart
3. Die WHERE-Bedingung würde ich wie in Punkt 1 und 2 umschreiben, am Anfang die Reload-Prüfung und danach die Spalten wie in Punkt 1 angegeben, der reihe nach.

Ich hoffe, ich habe euch damit ein wenig geholfen ;)

DimpleX
23.06.2007, 11:43
Original von SebbyPHM
Hehe, jetzt gebe ich dazu auch mal ein paar Kommentare ab :D

auf tan

nun ich auch mal senf geben


index auf tan das ist ein alphanumerischer 32 code der generiert wird und keine echte reihen folge hat

daher index auf tan ist unsinnig (Komentar meines Dozenten)



mfg
DimpleX

SebbyPHM
23.06.2007, 12:33
soll ja nicht nur auf tan erfolgen. sondern auf tan, uid, ip.

Baumeister
23.06.2007, 15:26
Original von SebbyPHM
Hehe, jetzt gebe ich dazu auch mal ein paar Kommentare ab :D

1. Das sind viel zu viele Indexes für die Tabelle bzw. für die Spalte werbeart. Eigentlich sollte reichen: vms_reloads auf tan, uid, ip und bei der Tabelle vms_gebuchte_werbung auf werbeart, sponsor, status, verdienst, menge.
2. (@Gremlin) Man sollte in einer Where-Abfrage die Bedingungen, welche am ehesten zutreffen, am Anfang schreiben. So sollte z.B. t2.tan IS NULL am Anfang einer solchen stehen, da die Bedingung bei den Klickern am meisten geprüft wird und MySQL somit die nächsten bedingungen nicht unnötig prüft. Effekt: Ladezeit gespart
3. Die WHERE-Bedingung würde ich wie in Punkt 1 und 2 umschreiben, am Anfang die Reload-Prüfung und danach die Spalten wie in Punkt 1 angegeben, der reihe nach.

Ich hoffe, ich habe euch damit ein wenig geholfen ;)

und wie sieht der Code dann am besten aus, denn das von oben versteh ich nicht

MasterG
23.06.2007, 17:09
Kann mich nur dem Baumeister anschließen. Bzw. Wird dann mit dem neuen code der alte automatisch verändert?

djws
23.06.2007, 19:52
so dann hier mal das Beispiel von gremlin mit Sebbys Vorschlag:




<?
userstatus();
head("Paidbanner");

$usr = mysql_fetch_array(db_query("SELECT `max_forced` FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));

$fbanner = db_query ("SELECT t1.*
FROM ".$db_prefix."_gebuchte_werbung t1
LEFT JOIN ".$db_prefix."_reloads t2
ON (t1.tan=t2.tan AND (t2.uid='".$_SESSION['uid']."' or t2.ip='".$ip."'))
WHERE t2.tan IS NULL AND t1.werbeart = 'forcedbanner' AND t1.menge >='1' AND t1.status = '1' AND t1.verdienst > 0 AND t1.sponsor != '".$_SESSION['uid']."' ORDER BY t1.verdienst DESC LIMIT ".$usr['max_forced']."");

while($f_banner=mysql_fetch_array($fbanner)){
echo '<div align="center" id="banner_'.$x_banner.'"><a href="fc.php?tan='.$f_banner['tan'].'" target="_blank"><img src="'.$f_banner['banner'].'" border="0" height="60" width="468" alt="'.$f_banner['tan'].'" onClick="document.getElementById(\'banner_'.$x_banner.'\'). style.display=\'none\';"></a><br>Reload:'. $f_banner['reload']/3600 .' Std. | Verdienst: '.number_format($f_banner['verdienst'],2,',','.').' | Aufendhalt:'.$f_banner['aufendhalt'].' Sekunden<br><br></div>';
$x_banner++;
}

echo '<div align="center"><form action="" method="post"><input type="Submit" name="mehr_banner" value="Weitere Banner !"></form></div>';

foot();
?>

MasterG
23.06.2007, 20:22
Also bei mir wird es nicht schneller. Ist genauso langsam, wie es vorher war. Es lädt zu Beginn lange. Dann kommen die Banner flott.

rudicarell81
23.06.2007, 22:04
Original von MasterG
Also bei mir wird es nicht schneller. Ist genauso langsam, wie es vorher war. Es lädt zu Beginn lange. Dann kommen die Banner flott.

genau das problem habe ich auch

halk
23.06.2007, 22:25
hallo



sorry, das ich mal anworte. aber ich hatte das selbe prob. es kommt immer drauf an..... was für , wo ,welcher sponsor sich auf die hp holt. beispiel. wenn mann sich eine z.b Bannerviews auf siene hp holt und der sponsor ist total langsam ist ...deine seite auch lamgsam ,und das dauert sehr sehr lange bis sich deine seite aufbaut.also acht drauf wie schnell der sponsor ist ( dies ist meine erfahrung)


mfg halk

MasterG
23.06.2007, 22:27
OK, das versteh ich. Aber das war früher ja nicht. Sponsoren habe ich ja nicht gewechselt. Die lange Ladezeit ist auch bei allen Klick-Bereichen, obwohl da unterschiedliche Sponsoren sind.

Dreamerweb
12.07.2007, 15:37
Original von Gremlin

Original von dude32
eingebaut , getestet und siehe da.................... kein banner :(

Jup, hatte nen kleinen Denkfehler drin.... hier nun der richtige Code, bitte trotzdem vorher ein Backup machen, ich habe ihn nur hier local getestet...


<?
userstatus();
head("Paidbanner");

$usr = mysql_fetch_array(db_query("SELECT `max_forced` FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));

$fbanner = db_query ("SELECT t1.*
FROM ".$db_prefix."_gebuchte_werbung t1
LEFT JOIN ".$db_prefix."_reloads t2
ON (t1.tan=t2.tan AND (t2.uid='".$_SESSION['uid']."' or t2.ip='".$ip."'))
WHERE t1.menge >='1' and t1.werbeart = 'forcedbanner' and t1.status = '1' AND t1.verdienst > 0 and t1.sponsor != '".$_SESSION['uid']."' AND t2.tan IS NULL ORDER BY verdienst DESC LIMIT ".$usr['max_forced']."");

while($f_banner=mysql_fetch_array($fbanner)){
echo '<div align="center" id="banner_'.$x_banner.'"><a href="fc.php?tan='.$f_banner['tan'].'" target="_blank"><img src="'.$f_banner['banner'].'" border="0" height="60" width="468" alt="'.$f_banner['tan'].'" onClick="document.getElementById(\'banner_'.$x_banner.'\'). style.display=\'none\';"></a><br>Reload:'. $f_banner['reload']/3600 .' Std. | Verdienst: '.number_format($f_banner['verdienst'],2,',','.').' | Aufendhalt:'.$f_banner['aufendhalt'].' Sekunden<br><br></div>';
$x_banner++;
}

echo '<div align="center"><form action="" method="post"><input type="Submit" name="mehr_banner" value="Weitere Banner !"></form></div>';

foot();
?>


Hallo

Habe deinen Code jetzt schon eine Weile drin und der funktioniert sehr gut.

Nur ein kleines Problem. Ich habe bei mir auch eine Statistik drin. (Banner, Reload usw.)

Hatte von einigen Usern eine Mitteilung bekommen das was mit der Statistik nicht stimmt. Manchmal werden in der Statistik noch 80 Banner zum klicken angezeigt aber sind keine mehr da.

Habe dann mal das ganze wieder mit der normalen klick4 probiert und da stimmt statistik und Anzeige der Banner.

Jetzt habe ich mal Probeweise die Statistik umgebaut und deinen Code integriert.


$fbanner1 = db_query ("SELECT t1.*
FROM ".$db_prefix."_gebuchte_werbung t1
LEFT JOIN ".$db_prefix."_reloads t2
ON (t1.tan=t2.tan AND (t2.uid='".$_SESSION['uid']."' or t2.ip='".$ip."'))
WHERE t2.tan IS NULL AND t1.werbeart = 'forcedbanner' AND t1.menge >='1' AND t1.status = '1' AND t1.verdienst > 0 AND t1.sponsor != '".$_SESSION['uid']."'");

while($fa=mysql_fetch_array($fbanner1)){

$stat_gesamt++;

}
echo "<center><b>";
echo "Aktive Paidbanner: ".number_format($stat_gesamt,0,',','.')." ";
echo " <br /> ";

echo "</center></b><br />";


Jetzt stimmt die Statistikanzeige mit den Banneranzeige überein.

Nätürlich fehlen jetzt die ganzen anderen sachen aus der Statistk (Reload, Vergütung usw.)

Kann mir da jemand weiterhelfen.

MasterG
12.07.2007, 15:43
OT: Ich würde die Statistik rausnehmen, weil die nur unnötig die DB belastet.

Dreamerweb
12.07.2007, 15:49
Hast natürlich recht das sowas die Datenbank belastet.

Aber die meisten User wollten das gerne haben und ich habe auch keinen Geschwindigkeitsunterschied.

Ob die Statistik drin ist oder nicht macht keinen Unterschied in der Geschwindigkeit.

Aber trotzdem danke für deinen Hinweis.

MFG

MasterG
12.07.2007, 16:22
Gerne doch! Kann dir aber leider nichts zu dem Code sagen ?(

Hardy
06.09.2007, 22:00
habe jetzt mal die neue klick4 von oben eingebaut jetzt habe ich das problem das wenn ich auf die klick4 gehe die seite lange lädt und dann weiß bleibt.hat da einer ne idee dazu?würde mich sehr interessieren da es auf der anderen seite geklappt hat ohne probleme.