X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Вывод информации из базы данных
BaCo
BaCo
Topic Starter сообщение 28.3.2010, 11:03; Ответить: BaCo
Сообщение #1


Здравствуйте! Я вывожу статистику сайта так:
<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]
Но мне кажется, что это будет очень сильно грузить базу данных. Можете помочь? Или предложить другой способ вывода статистики.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 28.3.2010, 12:08; Ответить: ZiTosS
Сообщение #2


BaCo, покажите скрин с частью данных в БД, к примеру через phpMyAdmin. А то не очень понятно как вы суммируете и почему.
Вообще в MySQL есть такая функция SUM(), она как раз вам подойдет. То что вы написали будет грузить базу безумно, особенно если обращений к данной странице будет много.
Всё можно сделать за один запрос.
Объясните структуру точнее(лучше скрином и подписями). Что нужно проссумировать и с какими условиями и оговорками, а мы вам поможем решить данный вопрос. Пока очень сложно вникнуть.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Большие базы Semrush кейвордов по разным тематикам! Много кейвордов с трафиком и без конкуренции! Volume, KD, CPC
23 Krok 6921 Сегодня, 5:58
автор: Krok
Горячая тема (нет новых ответов) Свежие базы ключевых слов с подсказок гугла!
126 Krok 68741 Вчера, 5:04
автор: Krok
Открытая тема (нет новых ответов) Базы Youtube кейвордов с данными по конкуренции и Volume
6 Krok 1591 23.4.2024, 5:43
автор: Krok
Открытая тема (нет новых ответов) Интеграция спортивных данных API. Коэффициенты БК, Live результаты
15 yaroslav89 6877 8.4.2024, 17:17
автор: spoyer_ru
Открытая тема (нет новых ответов) Базы досок объявлений России, Украины, Беларуси и Казахстана
5 freeax 6476 10.3.2024, 15:07
автор: freeax


 



RSS Текстовая версия Сейчас: 25.4.2024, 23:30
Дизайн