Здравствуйте! Я вывожу статистику сайта так:
<table border="0" width="400">
<tr>
<td height="20" width="100" bgcolor="#00FFFF"><b>Дата</b></td>
<td height="20" width="70" bgcolor="#00FFFF"><b>Показы</b></td>
<td height="20" width="70" bgcolor="#00FFFF"><b>Клики</b></td>
<td height="20" width="50" bgcolor="#00FFFF"><b>CTR</b></td>
<td height="20" width="110" bgcolor="#00FFFF"><b>Деньги, <? echo($Currency); ?></b></td>
</tr>
<tr>
<td height="20" width="100" bgcolor="#FFFFFF">Сегодня</td>
<td height="20" width="70" bgcolor="#FFFFFF"><? $num1 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".$Today."', `type` = '0';")); if($num == "") { echo("0"); } else { echo($num); } ?></td>
<td height="20" width="70" bgcolor="#FFFFFF"><? $num2 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".$Today."', `type` = '1';")); if($num == "") { echo("0"); } else { echo($num); } ?></td>
<td height="20" width="50" bgcolor="#FFFFFF"><? $ctr = $num1/$num2; echo(round($ctr*100)/100); ?></td>
<td height="20" width="110" bgcolor="#FFFFFF"><? echo($max0); ?></td>
</tr>
<tr>
<td height="20" width="100" bgcolor="#FFFFFF"><? echo(($Day-1).".".$Month.".".$Year); ?></td>
<td height="20" width="70" bgcolor="#FFFFFF"><? $num1 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-1).".".$Month.".".$Year."', `type` = '0';")); if($num == "") { echo("0"); } else { echo($num); } ?></td>
<td height="20" width="70" bgcolor="#FFFFFF"><? $num2 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-1).".".$Month.".".$Year."', `type` = '1';")); if($num == "") { echo("0"); } else { echo($num); } ?></td>
<td height="20" width="50" bgcolor="#FFFFFF"><? $ctr = $num1/$num2; echo(round($ctr*100)/100); ?></td>
<td height="20" width="110" bgcolor="#FFFFFF"><? echo($max1); ?></td>
</tr>
<tr>
<td height="20" width="100" bgcolor="#FFFFFF"><? echo(($Day-2).".".$Month.".".$Year); ?></td>
<td height="20" width="70" bgcolor="#FFFFFF"><? $num1 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-2).".".$Month.".".$Year."', `type` = '0';")); if($num == "") { echo("0"); } else { echo($num); } ?></td>
<td height="20" width="70" bgcolor="#FFFFFF"><? $num2 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-2).".".$Month.".".$Year."', `type` = '1';")); if($num == "") { echo("0"); } else { echo($num); } ?></td>
<td height="20" width="50" bgcolor="#FFFFFF"><? $ctr = $num1/$num2; echo(round($ctr*100)/100); ?></td>
<td height="20" width="110" bgcolor="#FFFFFF"><? echo($max2); ?></td>
</tr>
<tr>
<td height="20" width="100" bgcolor="#FFFFFF"><? echo(($Day-3).".".$Month.".".$Year); ?></td>
<td height="20" width="70" bgcolor="#FFFFFF"><? $num1 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-3).".".$Month.".".$Year."', `type` = '0';")); if($num == "") { echo("0"); } else { echo($num); } ?></td>
<td height="20" width="70" bgcolor="#FFFFFF"><? $num2 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-3).".".$Month.".".$Year."', `type` = '1';")); if($num == "") { echo("0"); } else { echo($num); } ?></td>
<td height="20" width="50" bgcolor="#FFFFFF"><? $ctr = $num1/$num2; echo(round($ctr*100)/100); ?></td>
<td height="20" width="110" bgcolor="#FFFFFF"><? echo($max3); ?></td>
</tr>
<tr>
<td height="20" width="100" bgcolor="#FFFFFF"><? echo(($Day-4).".".$Month.".".$Year); ?></td>
<td height="20" width="70" bgcolor="#FFFFFF"><? $num1 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-4).".".$Month.".".$Year."', `type` = '0';")); if($num == "") { echo("0"); } else { echo($num); } ?></td>
<td height="20" width="70" bgcolor="#FFFFFF"><? $num2 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-4).".".$Month.".".$Year."', `type` = '1';")); if($num == "") { echo("0"); } else { echo($num); } ?></td>
<td height="20" width="50" bgcolor="#FFFFFF"><? $ctr = $num1/$num2; echo(round($ctr*100)/100); ?></td>
<td height="20" width="110" bgcolor="#FFFFFF"><? echo($max4); ?></td>
</tr>
<tr>
<td height="20" width="100" bgcolor="#FFFFFF"><b>Всего</b></td>
<td height="20" width="70" bgcolor="#FFFFFF"><b><? $num1 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `type` = '0';")); if($num == "") { echo("0"); } else { echo($num); } ?></b></td>
<td height="20" width="70" bgcolor="#FFFFFF"><b><? $num2 = @mysql_num_rows(@mysql_query("SELECT `id` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `type` = '1';")); if($num == "") { echo("0"); } else { echo($num); } ?></b></td>
<td height="20" width="50" bgcolor="#FFFFFF"><b><? $ctr = $num1/$num2; echo(round($ctr*100)/100); ?></b></td>
<td height="20" width="110" bgcolor="#FFFFFF"><b><? echo($max5); ?></b></td>
</tr>
</table>
Но у каждой строки в базе (со статистикой) должна быть своя цена (т.е. когда рекламодатели заказывают рекламу, они указывают цену). Нужно сложить все значения с ценами и вывести результаты.
Я думаю сделать так:
[php]while($row = @mysql_fetch_array(@mysql_query("SELECT `cost` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".$Today."', `type` = '1';"))) {
$max0 = $max0 + $row['cost'];
} while($row = @mysql_fetch_array(@mysql_query("SELECT `cost` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-1).".".$Month.".".$Year."', `type` = '1';"))) {
$max1 = $max1 + $row['cost'];
} while($row = @mysql_fetch_array(@mysql_query("SELECT `cost` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-2).".".$Month.".".$Year."', `type` = '1';"))) {
$max2 = $max2 + $row['cost'];
} while($row = @mysql_fetch_array(@mysql_query("SELECT `cost` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-3).".".$Month.".".$Year."', `type` = '1';"))) {
$max3 = $max3 + $row['cost'];
} while($row = @mysql_fetch_array(@mysql_query("SELECT `cost` FROM `".$DB_Prefix."stats` WHERE `site` = '".$site."', `user` = '".GetUserID()."', `date` = '".($Day-4).".".$Month.".".$Year."', `type` = '1';"))) {
$max4 = $max4 + $row['cost'];
}
}[/php]
Но мне кажется, что это будет очень сильно грузить базу данных. Можете помочь? Или предложить другой способ вывода статистики.