Hoi,
Ik heb een referal systeem gemaakt. Deze draaid al zo'n 3 maanden probleemloos, maar nu mijn traffic hoger is dan in het begin, is het belangrijk dat dit script zo snel mogelijk is, en de server zo min mogelijk belast. Ik zou niet weten hoe ik deze code sneller zou kunnen maken, maar misschien dat een van julie een manier weet waarop het sneller is?
Afin, hier is mn systeem + code.
1. in.php, elke bezoeker komt binnen via deze file, bijvoobeeld http://www.mijnsite.com/in.php?siteid=henk
Ik heb dus 2 tabellen. In 1 tabel staan alle sites met de daarbij behorende info, zoals url, naam, email etc. Ook staat daar in of de site "enabled" is. Als dit "no" is dan is de site niet actief en moet ie dus "disabled" zijn. Dus daar moet op gecheckt worden. Het systeem werkt zo, dat op basis van de hits die een site vandaag stuurt, de site morgen geplaatst word. Als ie dus vandaag 3e is, staat ie morgen pas als 3e op de site. De site loopt dus 1 dag achter zeg maar.
In de 2e tabel, staat de dag, plus een paar andere velden, voor elke site die ik heb 1 veld. Ik heb dus een centrale database. In het geval van deze code is dit veld "tb". Op mn andere sites is de code dus precies hetzelfde maar dan is "tb" iets anders. Dit ff zodat je de code een beetje begrijpt
.
Dan op mijn site zelf, daar heb ik dus een top 20.
Hier is die code:
Dr zit aardig wat html bij, maar daar moet je maar ff niet op letten, het gaat puur om de php code.
Dat is dus de top 20, van 2x2 rijen van 5.
Dan heb ik ook nog de rest, dat zijn 2 rijen van 10. Hier is die code:
Whoa, het is heel wat code, en ik vind het al knap van mezelf dat ik dit heb kunnen maken, en dat het ook nog werkt
. Ik ben ongeveer 4 maanden geleden begonnen met php, dus zo slecht is het nog niet
.
Naja, weet iemand dus hoe ik deze code sneller kan maken? in.php word zon 13000 keer per dag gerunt, en die andere 2 nog vaker...dus het is wel belangrijk dat ie zo snel is als het maar kan
TNX!!!
Ik heb een referal systeem gemaakt. Deze draaid al zo'n 3 maanden probleemloos, maar nu mijn traffic hoger is dan in het begin, is het belangrijk dat dit script zo snel mogelijk is, en de server zo min mogelijk belast. Ik zou niet weten hoe ik deze code sneller zou kunnen maken, maar misschien dat een van julie een manier weet waarop het sneller is?
Afin, hier is mn systeem + code.
1. in.php, elke bezoeker komt binnen via deze file, bijvoobeeld http://www.mijnsite.com/in.php?siteid=henk
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
| <?php
include("dbconnect.inc.php");
$ip = $REMOTE_ADDR;
$query = ("SELECT ip FROM ips WHERE ip = '$ip' AND site = 'tb'");
$result = mysql_query($query);
$ipdb = mysql_fetch_array($result);
if($ip == $ipdb[0])
{
}
else
{
$query = ("SELECT enabled FROM sites WHERE siteid = '$siteid'");
$result = mysql_query($query);
$enabled = mysql_fetch_array($result);
if($enabled[0] == yes)
{
$month = date("m");
$day = date("z");
$query = ("INSERT INTO ips (ip, month, site) VALUES ('$ip', '$month', 'tb')");
$result1 = mysql_query($query);
$query = ("SELECT tb FROM stats WHERE id = '$siteid' AND day='$day'");
$result = mysql_query($query);
$tb = mysql_fetch_array($result);
if($tb[0]==(NULL))
{
$query = ("INSERT INTO stats (id, day, tb) VALUES ('$siteid', '$day', '1')");
$result1 = mysql_query($query);
}
else
{
$tb_new = ($tb[0]+1);
$query = ("UPDATE stats SET tb = '$tb_new' WHERE id = '$siteid' AND day = '$day'");
$result1 = mysql_query($query);
$datum= time();
$query = ("UPDATE sites SET lasthit = '$datum' WHERE siteid = '$siteid'");
$result1 = mysql_query($query);
}
}
else
{
}
}
header("Location: http://www.mijnsite.com");
?> |
Ik heb dus 2 tabellen. In 1 tabel staan alle sites met de daarbij behorende info, zoals url, naam, email etc. Ook staat daar in of de site "enabled" is. Als dit "no" is dan is de site niet actief en moet ie dus "disabled" zijn. Dus daar moet op gecheckt worden. Het systeem werkt zo, dat op basis van de hits die een site vandaag stuurt, de site morgen geplaatst word. Als ie dus vandaag 3e is, staat ie morgen pas als 3e op de site. De site loopt dus 1 dag achter zeg maar.
In de 2e tabel, staat de dag, plus een paar andere velden, voor elke site die ik heb 1 veld. Ik heb dus een centrale database. In het geval van deze code is dit veld "tb". Op mn andere sites is de code dus precies hetzelfde maar dan is "tb" iets anders. Dit ff zodat je de code een beetje begrijpt
Dan op mijn site zelf, daar heb ik dus een top 20.
Hier is die code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
| <table border="0" cellspacing="0" cellpadding="0" width='80%'>
<tr>
<td colspan="3" width='300'>[img]'images/top_referals.jpg'><BR>
[/img]
</tr>
<tr>
<td>
<?php
include("dbconnect.inc.php");
$i = 0;
$rank = 1;
$day = date("z");
$day = $day - 1;
$query = "SELECT id FROM stats WHERE tb > 0 AND day = '$day' ORDER by tb DESC limit 5";
$result = mysql_query($query);
while($record = mysql_fetch_object($result))
{
$query2 = "SELECT title, url FROM sites WHERE siteid='$record->id'";
$result2 = mysql_query($query2);
while ($record2 = mysql_fetch_object($result2))
{
$titel = $record2->title;
$url = $record2->url;
print("<font face='Arial, Helvetica, sans-serif' size='2'><b>$rank </b><a href='$url' target='_blank'>$titel</a><br>");
$rank++;
}
}
print("</td><td width='8'></td><td>");
$i = 0;
//$rank = 6;
$query = "SELECT id FROM stats WHERE tb > 0 AND day = '$day' ORDER by tb DESC limit 5,5";
$result = mysql_query($query);
while($record = mysql_fetch_object($result))
{
$query2 = "SELECT title, url FROM sites WHERE siteid='$record->id'";
$result2 = mysql_query($query2);
while ($record2 = mysql_fetch_object($result2))
{
$titel = $record2->title;
$url = $record2->url;
print("<font face='Arial, Helvetica, sans-serif' size='2'><b>$rank </b><a href='$url' target='_blank'>$titel</a><br>");
$rank++;
}
}
print("</td></tr></table><br><center>
<table border='0' cellspacing='0' cellpadding='0' width='80%'><tr><td>");
$i = 0;
$query = "SELECT id FROM stats WHERE tb > 0 AND day = '$day' ORDER by tb DESC limit 10,5";
$result = mysql_query($query);
while($record = mysql_fetch_object($result))
{
$query2 = "SELECT title, url FROM sites WHERE siteid='$record->id'";
$result2 = mysql_query($query2);
while ($record2 = mysql_fetch_object($result2))
{
$titel = $record2->title;
$url = $record2->url;
print("<font face='Arial, Helvetica, sans-serif' size='2'><b>$rank </b><a href='$url' target='_blank'>$titel</a><br>");
$rank++;
}
}
print("</td><td width='7'></td><td>");
$i = 0;
//$rank = 6;
$query = "SELECT id FROM stats WHERE tb > 0 AND day = '$day' ORDER by tb DESC limit 15,5";
$result = mysql_query($query);
while($record = mysql_fetch_object($result))
{
$query2 = "SELECT title, url FROM sites WHERE siteid='$record->id'";
$result2 = mysql_query($query2);
while ($record2 = mysql_fetch_object($result2))
{
$titel = $record2->title;
$url = $record2->url;
print("<font face='Arial, Helvetica, sans-serif' size='2'><b>$rank </b><a href='$url' target='_blank'>$titel</a><br>");
$rank++;
}
}
?>
</td>
</tr>
</table> |
Dr zit aardig wat html bij, maar daar moet je maar ff niet op letten, het gaat puur om de php code.
Dat is dus de top 20, van 2x2 rijen van 5.
Dan heb ik ook nog de rest, dat zijn 2 rijen van 10. Hier is die code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| <BR><center><table border="0" cellpadding="0" cellspacing="5" width="70%"><tr><td width="100%" colspan="2"><font size='2'><CENTER><B>Other Great Sites</B><BR><BR></CENTER></td></tr>
<tr><td width="60%"><font face='Arial, Helvetica, sans-serif' size='2'>
<?php
include("dbconnect.inc.php");
$i = 0;
$day = date("z");
$day = $day - 1;
$query = "SELECT id FROM stats WHERE tb > 0 AND day = '$day' ORDER by tb DESC LIMIT 20, 10";
$result = mysql_query($query);
while($record = mysql_fetch_object($result))
{
$query2 = "SELECT title, url FROM sites WHERE siteid='$record->id'";
$result2 = mysql_query($query2);
while ($record2 = mysql_fetch_object($result2))
{
$titel = $record2->title;
$url = $record2->url;
print("<a href='$url' target='_blank'>$titel</a><br>");
}
}
print("</td><td width='40%' valign='top'><font face='Arial, Helvetica, sans-serif' size='2'>");
$i = 0;
$query = "SELECT id FROM stats WHERE tb > 0 AND day = '$day' ORDER by tb DESC LIMIT 30, 10";
$result = mysql_query($query);
while($record = mysql_fetch_object($result))
{
$query2 = "SELECT title, url FROM sites WHERE siteid='$record->id'";
$result2 = mysql_query($query2);
while ($record2 = mysql_fetch_object($result2))
{
$titel = $record2->title;
$url = $record2->url;
print("<a href='$url' target='_blank'>$titel</a><br>");
}
}
?>
</td></tr></table></center> |
Whoa, het is heel wat code, en ik vind het al knap van mezelf dat ik dit heb kunnen maken, en dat het ook nog werkt
Naja, weet iemand dus hoe ik deze code sneller kan maken? in.php word zon 13000 keer per dag gerunt, en die andere 2 nog vaker...dus het is wel belangrijk dat ie zo snel is als het maar kan
TNX!!!
Leef lekker in het nu, er is niks anders