3:
Er mest af alt teknisk:
Du har:
ip location
----------------
1 Danmark
2 Danmark
3 Danmark
4 Danmark
5 Danmark
6 Sverige
7 Sverige
8 Sverige
9 Norge
10 Sverige
Jeg forslog:
lid navn
---------
1 Danmark
2 Sverige
3 Norge
ip lid
----------------
1 1
2 1
3 1
4 1
5 1
6 2
7 2
8 2
9 3
10 2
Hvis du antager, at hvert bogstav du gemmer, optager ét byte. Vil du i din tabel have brugt væsentlig flere bytes end mit forslag.
5:
Hvis du har logik og visualisering separat kun du ændre dem uafhængigt af hinanden. I tilfælde af dig er det mest at du kan ændre visualisering.
Hvis f.eks. du havde din logik i fil som enten funktioner eller en klasse.
Kan du bare include den, forstil dig at lav noget i retning af dette når logik og visualisering er bladet sammen:
logic.php:
function get_users_by_location(){
$total_res = mysql_query("SELECT COUNT(1) FROM cms_statistik");
list($total) = mysql_fetch_row($total_res);
$countryVisits = mysql_query("SELECT COUNT(location) AS antal, location FROM cms_statistik GROUP BY `location` ORDER BY antal DESC LIMIT 3") or die(mysql_error());
$arr = array();
while($row = mysql_fetch_row($countryVisits)){
$row['percent'] = $row['antal'] / $total;
$arr[] = $row;
}
return $arr;
}
visuelt_txt.php:
include('logic.php');
foreach( get_users_by_location() as $u){
print $u['location'].' '.$u['antal'].' '.$u['percent'];
}
visuelt_html.php:
include('logic.php');
foreach( get_users_by_location() as $u){
print '<div><b>'$u['location'].'</b> '.$u['antal'].' '.$u['percent'].'</div>';
}
visuelt_xml.php:
include('logic.php');
foreach( get_users_by_location() as $u){
print '<visits location="'$u['location'].'" antal="'.$u['antal'].'" percent="'.$u['percent'].'"/>';
}