|
|
|
| есть база из которой выбираем два столбцы цифр, и над ним производим ряд действий дабы получить МИнимальные, МАКСимальные значения... Это я всё сделал быстро. НО вот с задачей посчитать СТАНДАРТНОЕ ОТКЛОНЕНИЕ отклонение что-то никак не могу. КАК оказалось в PHP нету такой функции как в MySQL ( я говорю о STD).
приведу код:
$query = "SELECT Sобщ, price FROM basa WHERE basa.kom = $komn and basa.id_type = $id_type and basa.id_tip = $id_tip";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$s=$row['Sобщ'];
$p=(int)$row['price'];
$uc = round($p/$s,3);
$sum += count($s); // Сумма записей в выборке. (Объём выборки)
$ew = (int)$row['price'];
$sum2 += $uc; // Сумма всех цен 1 кв.м
$mid = round($sum2 / $sum,3);
/* echo "<br>";
echo "удельная цена $p"; */
echo "<table width='400' border='1' cellpadding='0' cellspacing='0' class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF'
onmouseout=this.style.backgroundColor=''><td width='10' ></td><td width='25%' >
". $row['Sобщ']. "</td><td width='20%' >".(int)$row['price']."</td><td width='5%' align='center' >X
</td><td width='25%' >".$uc."</td><td width='80' align='right'></td><td width='10' ></td></tr></td></table>";
}
|
для меня являеться сложностью найти стандартное отконение переменной "$uc". Просто непонимаю как это сделать! =(
Единственное что приходит в голову это записать Эту переменную в Базу а уже оттуда её выдернуть и посчитать отклонение с помощию СКЛьной STD.
Какие будут предложения Товарищи?..
help | |
|
|
|
|
|
|
|
|
для: Trianon
(07.09.2008 в 22:04)
| | так в том то и дело. формула у меня есть!! проблема в том я не знаю как мне использовать массив в переменной "$uc"
у меня в переменной ".$uc." засунут массив который и мне нужно произвести вычисления над каждым элементом массива ((сложить и возвести во вторую степень) это я смогу сделать).
Так вот сложность именно с том чтобы произвести эти арифметические действия над каждым элементом массива.
Надеюсь я Вас не запутал... =) (талантом объяснения я никогда не отличался) | |
|
|
|
|
|
|
|
для: bill
(07.09.2008 в 22:27)
| | нужно произвести вычисления над каждым элементом массива ((сложить и возвести во вторую степень)
foreach ($uc as $value)
{
$res=$res+$value;
}
$res=$res*$res;
|
Может я не так понял, и формула не та... но принцип тот же... фореч рулит) | |
|
|
|
|
|
|
|
для: bill
(07.09.2008 в 22:27)
| | array_walk_recursive и array_walk | |
|
|
|
|
|
|
|
для: Valick
(08.09.2008 в 02:03)
| | Спасибо всем. почитал и решил эту задачу (расчёт стандартного отклонения).
Сейчас другая задача актуальна, прошу помощи.!
проблема с ЦИКЛАМИ (я запутался, 2 дня "распутаться немогу")
есть код:
$query = "SELECT Sобщ, price FROM basa WHERE basa.kom = $komn and basa.id_type = $id_type and basa.id_tip = $id_tip";
$result = mysql_query($query) or die(mysql_error());
$query_uc2 = "SELECT uc2 FROM mal WHERE TO_DAYS(NOW()) = TO_DAYS(data) AND uc2 > '0'";
$result_uc2 = mysql_query($query_uc2) or die(mysql_error());
{
while(($row = mysql_fetch_array($result))AND($row_uc2 = mysql_fetch_array($result_uc2)))
{
$s=$row['Sобщ'];
$p=(int)$row['price'];
$uc = round($p/$s,3);
$ew = (int)$row['price'];
$uc2 = $row_uc2['uc2'];
echo "<table width='600' border='0'class='style96'>
<tr>
<td width='230'><table width='100%' border='0' class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF'
onmouseout=this.style.backgroundColor='' ><td ></td><td width='70' >
". $row['Sобщ']. "</td><td width='70' >".(int)$row['price']."</td><td width='50' align='center' >X ".$num++."
</td></tr></td></table></td>
<td width='120'><table width='90%' border='1' class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF'
onmouseout=this.style.backgroundColor='' bgcolor='#CCFFFF'><td >".$uc."</td></tr></table>
<td width='40'align='center'>X ".$num2++."</td>
<td width='100'><table width='100%' border='1' class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF'
onmouseout=this.style.backgroundColor='' bgcolor='FFFF99'><td > ".$uc2." </td></tr></table>
<?php echo'AFR'; ?>
<td> </td>
<td> </td>
</tr>
</table>
" ;
}
}
|
Код выводит как можно было догадаться таблицу в которую Циклами выводяться содержимое MySQL таблицы.
Цикл:
while(($row = mysql_fetch_array($result))
| - имеет 57 записей.
Цикл:
AND($row_uc2 = mysql_fetch_array($result_uc2)
| -имеет 54 записи.
ТАБЛИЦЫ которую я хочу вывести отображаеться нормально только Количество записей которые я вижу в ней = 54. Явно видно что как только ВТОРОЙ цикл достигает конца то таблицы перестаёт "заполняться" значениями из базы.
Вот такой я Лапух... =( Подскажите кто что может по заданному вопросу. Может мысли какие будут...
Зарание благодарен. | |
|
|
|
|
|
|
|
для: bill
(12.09.2008 в 15:40)
| | ЛЮДИИииии помогите ПОЖАЛЛууусто! | |
|
|
|
|
|
|
|
для: bill
(12.09.2008 в 16:12)
| | толи я вопрос задал неверно,
толи никто незнает ответа на заданный вопрос,
ну или третий вариант: ..........! (бл*ть чтож так выругаться то хочется).
Таварищи, помогите.... | |
|
|
|
|
|
|
|
для: bill
(12.09.2008 в 17:26)
| | Судя по всему помощи мне в решении заданного вопроса я тут недождусь....... | |
|
|
|
|
|
|
|
для: bill
(13.09.2008 в 13:38)
| | показать здесь код, который просто выводит все числа на экран в столбик Вы можете? | |
|
|
|
|
 89.8 Кб |
|
|
для: Trianon
(13.09.2008 в 13:43)
| | ДА.
привожу часть скрипта который берёт из базы значения и должен ПРОСТО вывести эти значения в ТАБЛИЦУ.
$query = "SELECT Sобщ, price FROM basa WHERE basa.kom = $komn and basa.id_type = $id_type and basa.id_tip = $id_tip";
$result = mysql_query($query) or die(mysql_error());
$query_uc2 = "SELECT uc2 FROM mal WHERE TO_DAYS(NOW()) = TO_DAYS(data) AND uc2 > '0'";
$result_uc2 = mysql_query($query_uc2) or die(mysql_error());
{
while(($row = mysql_fetch_array($result))AND($row_uc2 = mysql_fetch_array($result_uc2)))
{
$s=$row['Sобщ'];
$p=(int)$row['price'];
$uc = round($p/$s,3);
$ew = (int)$row['price'];
/* $rew=array_sum($ew); */
$uc2 = $row_uc2['uc2'];
echo "<table width='400' border='0'class='style96'>
<tr>
<td width='150'><table width='90%' border='0' class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF'
onmouseout=this.style.backgroundColor='' ><td ></td><td width='30' >
". $row['Sобщ']. "</td><td width='30' >".(int)$row['price']."</td><td width='10' align='center' >X
</td></tr></td></table></td>
<td width='70'><table width='90%' border='1' class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF'
onmouseout=this.style.backgroundColor='' bgcolor='#CCFFFF'><td >".$uc."</td></tr></table>
<td width='30'align='center'>X</td>
<td width='70'><table width='90%' border='1' class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF'
onmouseout=this.style.backgroundColor='' bgcolor='FFFF99'><td >".$uc2."</td></tr></table>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
" ;
}
}
|
в прикреплённом файле дана сама ТАБЛИЦА которая сейчас у меня выводиться этим скриптом.
У меня только один вопрос как мне поправить скрипт чтобы в таблице выводилось ВСЕ записи (55) Первого цикла:
while(($row = mysql_fetch_array($result))
| кторый сформировался по запросу к базе:
$query = "SELECT Sобщ, price FROM basa WHERE basa.kom = $komn and basa.id_type = $id_type and basa.id_tip = $id_tip";
|
Сейчас же мой вывод в таблицу ограничен выводом (53) записи, это делает ВТОРОЙ цикл:
AND($row_uc2 = mysql_fetch_array($result_uc2))
| который сформирован из запроса к базе
$query_uc2 = "SELECT uc2 FROM mal WHERE TO_DAYS(NOW()) = TO_DAYS(data) AND uc2 > '0'";
$result_uc2 = mysql_query($query_uc2) or die(mysql_error());
|
???
ГЛАВНЫЙ вопрос в том как мне "развести" эти два цикла, чтобы каждый из них выводился в полном Объёме. И я в таблице видел все запись, без "обрезаний".
???
Второй вопрос: Как можно выполнить ПОДСВЕТКУ (выделение цветом) в таблице данных выводимых ПЕРвым циклом. Подсветка должна производиться только тех данных которые невходят в диапазон.
ПРИМЕР: допустим есть таблица:
<table width="9%" border="1">
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
<tr>
<td>6</td>
</tr>
<tr>
<td>7</td>
</tr>
<tr>
<td>8</td>
</tr>
<tr>
<td>9</td>
</tr>
<tr>
<td>10</td>
</tr>
</table>
|
и есть условие диапазоны от 3 до 7
Как мне выделить цветом те строчки которые невходят в указанный диапазон.?????
(пока что сам думаю может быть сделать в базе дополнительное поле. в котром будет записываться код цвета, и я буду выдёргивать цвет каждой ячейки из базы. Я понимаю что это несовсем "ICE" но другое покачто в голову неприходит. ) | |
|
|
|
|
|
|
|
для: bill
(13.09.2008 в 15:51)
| | Вас вообще что интересует? Как среднеквадратичное отклонение посчитать? Или что-то еще?
Я cпросил про столбик чисел.... Вы навалили на три экрана
Столбик чисел это что-то вроде
foreach($arr as $val)
echo $val."<br />\r\n";
|
На картинке тож столбик явно не один. Вы полагаете, эта картинка что-то проясняет? | |
|
|
|
|
|
|
|
для: Trianon
(13.09.2008 в 16:00)
| | Меня интересуем как мне вывести в таблицу информацию из базы MySQL (стандартное отклонение я уже сам расчитал!) Проблема в том что я выводу все данные в таблицу.
- беру данные из базы MySQL из столбика "а" и вывожу в Первый столбик таблицы.
- беру данные из базы из столбика "б" и вывожу во Второй столбик таблицы.
Проблема в том что у меня вывод осуществляеться цыклически (данные выводяться в таблмцу циклом) причём цыкла ДВА :
while(($row = mysql_fetch_array($result))AND($row_uc2 = mysql_fetch_array($result_uc2)))
|
и как только одни из циклов заканциваеться, заканчиваеться и выполнение второго. Хотя во втором могут быть данные для вывода. А в Моём случае данные получаеться что выводяться неполностью. =( ПРОБЛЕМА ИМЕННО В ЭТОМ!!!
И простите меня за НЕЛАКОНИЧНОСТЬ. (я только учусь) | |
|
|
|
|
|
|
|
для: bill
(13.09.2008 в 16:17)
| |
for(;;)
{
$row = mysql_fetch_array($result);
$row_uc2 = mysql_fetch_array($result_uc2);
if(!$row && !$row_uc2)
break;
}
|
новые задачи формулируются отдельными темами. | |
|
|
|
|
|
|
|
для: Trianon
(13.09.2008 в 16:36)
| | ОГРОМНАЯ благодарность!!!
Всё вывелось как мне и было нужно!
Спасибо спасибо спасибо. | |
|
|
|
|
|
|
|
для: Trianon
(13.09.2008 в 16:36)
| | Второй вопрос: Как можно выполнить ПОДСВЕТКУ (выделение цветом) в таблице данных выводимых ПЕРвым циклом. Подсветка должна производиться только тех данных которые невходят в диапазон.
ПРИМЕР: допустим есть таблица:
<table width="9%" border="1">
<tr>
<td bgcolor="#FF0000">1</td>
</tr>
<tr>
<td bgcolor="#FF0000">2</td>
</tr>
<tr>
<td bgcolor="#FF0000">3</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
<tr>
<td>6</td>
</tr>
<tr>
<td>7</td>
</tr>
<tr>
<td>8</td>
</tr>
<tr>
<td>9</td>
</tr>
<tr>
<td>10</td>
</tr>
</table>
|
и есть условие диапазоны от 3 до 7
Как мне те строчки которые невходят в указанный диапазон.?????
(пока что сам думаю может быть сделать в базе дополнительное поле. в котром будет записываться код цвета, и я буду выдёргивать цвет каждой ячейки из базы. Я понимаю что это несовсем "ICE" но другое покачто в голову неприходит. ) | |
|
|
|
|
|
|
|
для: bill
(13.09.2008 в 16:44)
| | новые задачи формулируются отдельными темами!
[поправлено модератором] | |
|
|
|