Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 26.06.2011, 19:57   #1
Dmitry1983
Форумчанин
 
Регистрация: 24.06.2011
Сообщений: 80
Репутация: 10
По умолчанию Математика в php

вопрос традиционно элементарный...
с помощью формы и функций выводится перечень объектов (из БД) удовлетворяющих заданным значениям (например, больше 5 и менее 10)
Как программно вывести количество значений?

$result = mysql_query("SELECT a.uid, a.gid,a.url, a.popul, b.name_rus FROM (geo_data AS a INNER JOIN geo_base as b ON a.gid=b.uid) WHERE a.popul>$ot and a.popul<$do ORDER BY a.popul" );

$summ= count($result);
echo $summ;

так не катит и вообще про математику в php не могу найти как делать округление результата и т.д.?
Dmitry1983 вне форума   Ответить с цитированием
Старый 26.06.2011, 20:27   #2
Cronos20
Участник клуба
 
Регистрация: 08.07.2010
Сообщений: 677
Репутация: 200
По умолчанию

А в чем собственно вопрос??? Вы что считать-то хотите?
То что вы пытаетесь делать, судя по всему - подсчет количества рядов при выборке ... это делает mysql_num_rows($result)
Или вы хотите там что-то подсчитать в sql запросе? тогда зачем использовать php (вы говорите о каком-то округлении)? Считайте прямо в sql запросе
Cronos20 вне форума   Ответить с цитированием
Старый 27.06.2011, 00:12   #3
Dmitry1983
Форумчанин
 
Регистрация: 24.06.2011
Сообщений: 80
Репутация: 10
По умолчанию

за подсказку спасибо! шас опробуем... а считать?
ну вот например у меня строится выборка
а - 1
б - 2
в - 2
г - 4
д- 1
ж- 1

мне нужно сверху добавить в таблицу строку, в которой поставить суммы:

Всего значений: 6 Сумма: 11 (как посчитать сумму?) array_sum - это оно?

Последний раз редактировалось Dmitry1983; 27.06.2011 в 00:15.
Dmitry1983 вне форума   Ответить с цитированием
Старый 27.06.2011, 11:45   #4
Cronos20
Участник клуба
 
Регистрация: 08.07.2010
Сообщений: 677
Репутация: 200
По умолчанию

О чем вы спрашиваете??? Вы не ответили на вопрос ... я понятия не имею что вы там собираетесь считать ... что такое а,б,в .... количество рядов из 6-ти запросов с селектом? Ну посчитает это array_sum, но фраза
Код:
мне нужно сверху добавить в таблицу строку, в которой поставить суммы:
лишена смысла ... не знаю что вы хотите ....
Если что-то хотите выбрать из таблицы, посчитать, а потом обратно вставить туда же, то ваш способ как минимум не оптимален .... все можно делать одним сложным sql запросом типа INSERT into table (field) SELECT .... from table WHERE ....
Хотя смысл всех ваших вычислений мне совсем не понятен
Cronos20 вне форума   Ответить с цитированием
Старый 27.06.2011, 12:46   #5
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Адрес: D5.97.39.4C since 7D8.
Сообщений: 158
Репутация: 28
По умолчанию

Вы можете сделать ещё один запрос в mysql, можете посчитать это в php

MySQL: вам помогут SUM() и COUNT()

php: когда вы в цикле выводите (а я надеюсь вы в цикле выводите) значения из DB, просто добавьте
до цикла
$count=0;
$sum=0;
в цикле
$count++;
$sum+=Суммируемая Переменная
После цикла
выведите значения $count и $sum.

PS: И начинайте же учить простейшие концепции и алгоритмы программирования ! "Программист" без знания основ - как минимум жалок и беспомощен, максимум - изобретает велосипеды и пишет индусский код. (Ладно бы ещё индийский код писали, так нет - пишут индусский.)
graymaster вне форума   Ответить с цитированием
Старый 11.07.2011, 19:48   #6
Dmitry1983
Форумчанин
 
Регистрация: 24.06.2011
Сообщений: 80
Репутация: 10
По умолчанию

Прошу прощения, был в отпуске...
буду признателен за помощь в оптимизации кода...
Суть в следующем - есть перечень объектов и численность персонала у каждого.

Необходимо вывести в таблицу перечень объектов удовлетворяющих обозначенным в форме критериям (от 10 до 20 чел.)
Проблема: каждую строку рисует отдельной таблицей (я понимаю, что ее в цикл загнал, но запутался)

PHP код:
<body>

<div align="center">
<form name="objectvybor" method="post" action="">
  <p> Выберите объекты по численности персонала </p>
  
  <p> от <input name="ot" type="text" id="search"> 
  до  <input name="do" type="text" id="search"> </p>
  <input name="Submit" type="submit" value="Показать">
</form>

<?php

$ot 
$_POST['ot'];
$do $_POST['do'];

if (
$ot=='')
{
    echo 
"";
}
else
{
echo 
"Перечень объектов с численностью персонала от ".$ot" чел. до ".$do." чел. <br>";

$result mysql_query("SELECT a.uid, a.gid,a.url, a.popul, b.name_rus FROM (data AS a INNER JOIN base as b ON a.gid=b.uid) WHERE  a.popul>$ot and a.popul<$do ORDER BY a.popul" );

$daa mysql_fetch_array$result); 

if    (
$daa=='') {
    echo 
"<br>Таких объектов нет";
}
else
{
    do {

printf ("<table align='center' border='1'>
<tr height='10px'>
<td width='100'><p align='center'>%s</p></td>
<td width='300'><p align='center'>%s</p></td>
<td width='100'><p align='center'>%s</p></td>
</tr>
</table>"
$daa[0], $daa[4], $daa[3]);


}
while (
$daa mysql_fetch_array$result));
}
}
?>
Проблема 2: нужно над таблицей вывести:
Всего таких объектов: и тут нужна функция суммы или счета (count)?
Всего персонала: сумма персонала в этих объектах.

Заранее спасибо!
Dmitry1983 вне форума   Ответить с цитированием
Старый 11.07.2011, 21:33   #7
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Адрес: D5.97.39.4C since 7D8.
Сообщений: 158
Репутация: 28
По умолчанию

Проще всего сделать ещё один запрос такого вида
SELECT COUNT(a.uid), SUM(A.POPUL) FROM data AS a WHERE a.popul>$ot and a.popul<$do
(Запрос такой же, как и у вас, только я выбросил оттуда ненужные в этом случае иннэр джоин и ордер)
Т.е. надо вытащить каунт и сум (каунт, соответственно - количество таких объектов, сум - сумма персонала), и вывести результаты, а потом делать запрос на остальные данные и выводить их.


Для вывода таблицы надо его (вывод таблицы, открывающий и закрывающий таги) вытащить из цикла:
Т.е. вот в этом иф-е сделать вот так
PHP код:
if    ($daa=='') { 
    echo 
"<br>Таких объектов нет"

else 

echo 
"<table align='center' border='1'>";
    do { 
printf ("<tr height='10px'> 
<td width='100'><p align='center'>%s</p></td> 
<td width='300'><p align='center'>%s</p></td> 
<td width='100'><p align='center'>%s</p></td> 
</tr> 
"
$daa[0], $daa[4], $daa[3]); 

while (
$daa mysql_fetch_array$result));
echo 
"</table>"



Последний раз редактировалось graymaster; 11.07.2011 в 21:38.
graymaster вне форума   Ответить с цитированием
Старый 11.07.2011, 22:13   #8
Dmitry1983
Форумчанин
 
Регистрация: 24.06.2011
Сообщений: 80
Репутация: 10
По умолчанию

Большущее!!!!
Dmitry1983 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Математика (Си) linker_mari Помощь студентам 2 07.11.2010 19:33
Математика zmey31313 Помощь студентам 1 07.06.2010 15:10
математика(( lumentek Общие вопросы C/C++ 3 07.06.2010 00:24
Математика terminadoor Помощь студентам 3 22.09.2008 21:42
Математика doniyor Общие вопросы Delphi 2 15.05.2008 18:25


08:28.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.