Ik ben bezig met het ontwikkelen van een forum. Nu zit ik in het begin al met een 'probleem'; Met de onderstaande code worden de categorien en de bijbehorende foras opgehaald.
Het resultaat is bijv dit:
>>Harde waren<<
Processors, Mobo's & Geheugen
Passen er in de BP6 nou wel of geen Itaniums...
Die-Hard Overclocking & Cooling
Voor alle info over het op-, over-, onder- en doorklokken van je teergeliefde XT.
>> Devschuur® <<
Webdesign & Graphics
Het forum voor webdesign, (D)HTML, Javascript, graphics, 3D-rendering, Flash en alles wat ermee te maken heeft.
Programming & Webscripting
Het programmeer en webscripting forum bij uitstek voor echte applicaties, PHP, MySQL, ASP, etc.
Nu wil ik uitteraard een zo goed mogelijke preformance hebbenl; zosnel mogelijk met zo min mogelijk recources. Ik heb daarbij 2 verschillende manieren bedacht om dit resultaat te krijgen. Nu vraag ik me alleen af welke dus de beste preformance geeft. Het forum gaat intensief worden gebruikt (gemiddeld 100 users online).
Ik heb al met een timertje bijgehouden welke het snelste is, maar dat wil denk ik niet zeggen welke het 'beste' is als het script heel vaak wordt opgevraagd.
Methode 1: ~0,020 s
Methode 2: ~0,016 s
Korte uitleg:
Methode 1 Haalt met 1 query de categorien op en maakt per categorie een query om de forum info op te halen.
Methode 2 Haalt met 2 query's de categorien en de forums op en zet ze in arrays. Waarna er met 2 loops de arrays worden uitgelezen
De code
Het resultaat is bijv dit:
>>Harde waren<<
Processors, Mobo's & Geheugen
Passen er in de BP6 nou wel of geen Itaniums...
Die-Hard Overclocking & Cooling
Voor alle info over het op-, over-, onder- en doorklokken van je teergeliefde XT.
>> Devschuur® <<
Webdesign & Graphics
Het forum voor webdesign, (D)HTML, Javascript, graphics, 3D-rendering, Flash en alles wat ermee te maken heeft.
Programming & Webscripting
Het programmeer en webscripting forum bij uitstek voor echte applicaties, PHP, MySQL, ASP, etc.
Nu wil ik uitteraard een zo goed mogelijke preformance hebbenl; zosnel mogelijk met zo min mogelijk recources. Ik heb daarbij 2 verschillende manieren bedacht om dit resultaat te krijgen. Nu vraag ik me alleen af welke dus de beste preformance geeft. Het forum gaat intensief worden gebruikt (gemiddeld 100 users online).
Ik heb al met een timertje bijgehouden welke het snelste is, maar dat wil denk ik niet zeggen welke het 'beste' is als het script heel vaak wordt opgevraagd.
Methode 1: ~0,020 s
Methode 2: ~0,016 s
Korte uitleg:
Methode 1 Haalt met 1 query de categorien op en maakt per categorie een query om de forum info op te halen.
Methode 2 Haalt met 2 query's de categorien en de forums op en zet ze in arrays. Waarna er met 2 loops de arrays worden uitgelezen
De code
PHP:
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
| //Method 1 - Useing for every category a query + 1 general query $query = " SELECT c.id, c.title, c.order FROM category c ORDER BY c.order "; $cat_result = mysql_query($query); while ($cat_list = mysql_fetch_object($cat_result)) { echo 'Category : ' . $cat_list->title . '<BR>'; $query = " SELECT f.* FROM forum f WHERE f.cat_id = '$cat_list->id' ORDER BY f.order "; $forum_result = mysql_query($query); while ($forum_list = mysql_fetch_object($forum_result)) { echo '<B>' . $forum_list->title . '</B><BR>'; echo '<I>' . $forum_list->description . '</I><BR>'; } echo '---<BR><BR>'; } //Method 2 - Useing 2 querys to store info in array $query = " SELECT c.id, c.title, c.order FROM category c ORDER BY c.order "; $cat_result = mysql_query($query); $i = 0; while ($cat_list = mysql_fetch_object($cat_result)) { $arr_cat[$i]['id'] = $cat_list->id; $arr_cat[$i]['title'] = $cat_list->title; $arr_cat[$i]['order'] = $cat_list->order; $i++; } $query = " SELECT f.* FROM forum f ORDER BY f.cat_id, f.order "; $forum_result = mysql_query($query); $i = 0; while ($forum_list = mysql_fetch_object($forum_result)) { $arr_forum[$i]['id'] = $forum_list->id; $arr_forum[$i]['catid'] = $forum_list->cat_id; $arr_forum[$i]['title'] = $forum_list->title; $arr_forum[$i]['order'] = $forum_list->order; $arr_forum[$i]['description'] = $forum_list->description; $i++; } for ($i=0;$i<count($arr_cat);$i++) { echo '<B><u> >> Category : ' . $arr_cat[$i]['title'] . ' << </B></U><BR>'; for ($b=0;$b<count($arr_forum);$b++) { if ($arr_forum[$b]['catid']==$arr_cat[$i]['id']) { echo '<B>' . $arr_forum[$b]['title'] . '</B><BR>'; echo '<I>' . $arr_forum[$b]['description'] . '</I><BR>'; } } echo '---<BR><BR>'; } |
[ Voor 15% gewijzigd door commeric op 26-12-2003 20:30 ]