Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Результат выполнения SUM(table_name) на php 
:(
    Опции темы
wolfmessing
Дата 20.2.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



Собсно конкретный код:

Код

$query_all_day = mysql_query("SELECT SUM(online_count) FROM online WHERE online_last = $now_date");
      if(mysql_num_rows($query_all_day)>0){
            while($res = mysql_fetch_array($query_all_day)){
                  echo $res['SUM(online_count)'];
            }
      }


Я с такой задачей ещё не сталкивался, mysql_fetch_array тут почемуто не катит, хотелось бы мнение знающих, саму функцию на рнр,
чтобы можно было увидеть результат выполнения SUM(online_count) в браузере

Это сообщение отредактировал(а) wolfmessing - 20.2.2008, 13:13
PM MAIL WWW ICQ   Вверх
bars80080
Дата 20.2.2008, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Код

function select_from_db($q) {
    $r = mysql_query($q);
    @$n = mysql_num_rows($r);
    for($i = 0; $i < $n; $i++) {
        $s[$i] = mysql_fetch_array($r, MYSQL_ASSOC); }
    if(!empty($s)) return $s;
    else return ''; }


$sql = "SELECT SUM(online_count) FROM online WHERE online_last = $now_date";
$r = select_from_db($sql);
var_dump($r);


попробуй так

Добавлено через 2 минуты и 13 секунд
чегой-то не посмотрел, у тебя по сути то же самое, у меня сработало

может у тебя в поле не числовые значения? или ещё где путаница
PM MAIL WWW   Вверх
A1ekcandr
Дата 20.2.2008, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



запрос вам возвращает конкретное число а не число записей, соответственно нет смысла писать mysql_num_rows($query_all_day)>0 это бред, помоему надо делать так 

Код

$query_all_day=mysql_query("SELECT SUM(online_count) as SUM FROM online WHERE online_last = $now_date");
$res = mysql_fetch_assoc($query_all_day);
echo "SUMMA".$res['SUM'];


Это сообщение отредактировал(а) A1ekcandr - 20.2.2008, 13:29
PM MAIL   Вверх
GeneralElectric
Дата 20.2.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



А поле online_last - в формате unix timestamp?

PM MAIL   Вверх
Fally
Дата 20.2.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



A1ekcandr, echo "SUMMA".$res['SUM']; - не верно, такого элемента в массиве нету..


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
wolfmessing
Дата 20.2.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



Спасибо всё получитось, примерно так:

Код

$query_all_day = $sql->query("SELECT SUM(online_count) AS online_count FROM online");      
      if($sql->num_rows($query_all_day)){
            while($res = $sql->fetch_array($query_all_day)){                   
                  echo $res['online_count'];
            }
      }


С этим online_last всех запутал  smile  smile  , а мне просто сумма нужна была, ошибку понял (AS  online_count)
 smile  smile  Спасибо всем большое

Это сообщение отредактировал(а) wolfmessing - 20.2.2008, 13:37
PM MAIL WWW ICQ   Вверх
A1ekcandr
Дата 20.2.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Цитата

A1ekcandr, echo "SUMMA".$res['SUM']; - не верно, такого элемента в массиве нету.. 


жаль в данный момент проверить не могу но вроде должно работать, смотри запрос as SUM

Это сообщение отредактировал(а) A1ekcandr - 20.2.2008, 13:38
PM MAIL   Вверх
GeneralElectric
Дата 20.2.2008, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



A1ekcandr, у него запрос ничего не возвращал.
пытался получить записи за 1990 год примерно.
PM MAIL   Вверх
wolfmessing
Дата 20.2.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



Товаищи, давайте остановимся на
Код

$query_all_day = $sql->query("SELECT SUM(online_count) AS online_count FROM online");      
      if($sql->num_rows($query_all_day)){
            while($res = $sql->fetch_array($query_all_day)){                   
                  echo $res['online_count'];
            }
      }

даты у меня все есть, точнее за 3 прошлых дня, мне только сумма была нужна (посещений за день), мог бы на рнр это писать, но решил заморочица в БД (что бы сразу суммировал), выше приведённый код решил эту задачу  smile 

А всем кто помогал ОГРОМНОЕ СПАСИБО !!!  smile 
PM MAIL WWW ICQ   Вверх
Fally
Дата 20.2.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



A1ekcandr, as SUM я действительно не заметил... прошу прощения.


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
GeneralElectric
Дата 20.2.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



wolfmessing, ты считаешь не за день, а за год. Что у тебя в переменной $now_date?

PM MAIL   Вверх
wolfmessing
Дата 20.2.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



Это за всё время уникальных ИП
Код

$query_all_day = $sql->query("SELECT SUM(online_count) AS online_count FROM online");
      
      if($sql->num_rows($query_all_day)){
            while($res = $sql->fetch_array($query_all_day)){                   
                  echo"<br>";
                  echo $res['online_count'];
            }
      }

это за сегодня, где 
Код

$now_date = date("Y-m-d");

Код

$query_day = $sql->query("SELECT SUM(online_count) AS online_count FROM online 
                        WHERE online_last ='".$now_date."'");
      if($sql->num_rows($query_day)){
            while($res = $sql->fetch_array($query_day)){                   
                  echo"<br>";
                  echo $res['online_count'];
            }
      }

 smile 
Табла пока такая:
Код

CREATE TABLE `online` (
`online_id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`online_ip` VARCHAR( 50 ) NOT NULL ,
`online_name` VARCHAR( 50 ) NOT NULL ,
`online_last` DATE DEFAULT '0000-00-00' NOT NULL ,
`online_count` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY (`online_id`),
UNIQUE      (`online_ip`)
) TYPE = MYISAM ;


Это сообщение отредактировал(а) wolfmessing - 20.2.2008, 16:36
PM MAIL WWW ICQ   Вверх
GeneralElectric
Дата 20.2.2008, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



воооот. теперь правильно =)
а то считал сколько будет 2008 вычесть 2 и вычесть ещё 20, а потом результат сравнивал с датой ;-)
в mysql, кстати, есть функция curdate()
PM MAIL   Вверх
wolfmessing
Дата 20.2.2008, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



Сори что уже за ОффТоп залезаю, в мускуле есть что нить по высчитыванию недели или месяца?

Ааа... Сори ещё раз уже всё нашол ТУТА

Это сообщение отредактировал(а) wolfmessing - 20.2.2008, 16:42
PM MAIL WWW ICQ   Вверх
GeneralElectric
Дата 20.2.2008, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



Есть ли в мускуле что нить по высчитыванию недели или месяца? Да если в мускуле нету, то нету больше нигде. Там функции на любой случай, на любой вкус.
ссылку навскидку не скажу, но там несложно. можно просто через mysql curdate в гугле найти
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.