[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Из "средний балл" взять количество проголосовавших
Маргарита
Языка не знаю, но как понимаю — этот кусок выводит средний балл за фото.
Но средний балл никому не интересен — нужна или сумма всех баллов, или количество проголосовавших

if($options->user_results) { //yes! show it ...

}elseif($options->voting_type == 2) {
$results = nggv_getImageVotingResults($pid, array("avg"=>true));

$out .= '<div class="nggv-image-vote-container">';

$out .= 'Средний балл: '.round(($results["avg"] / 20), 1)."";

$out .= '</div>';


Плагин NextGen Gallery Voting
1-5 баллов
Устала наугад перемещать скобки и $results с "avg"





Спустя 32 минуты, 7 секунд (17.02.2012 - 13:44) inpost написал(а):
В таком случае в раздел Проекты, и по возможности укажите цену вопроса, чтобы лишний раз программисты не дёргались и не предлагали свои цены, но завышенные.

Спустя 4 минуты, 16 секунд (17.02.2012 - 13:48) shmali написал(а):
Надо глубже копнуть .
Что возвращает функция
 nggv_getImageVotingResults()

там скорее всего происходит выборка и сложение оценок.
Там можно поправить вывод , либо сумму оценок либо их количество .

Насколько я понимаю
$results["avg"]
это средняя оценка которая потом округляется, следовательно Сумма всех оценок и деление на общее количество происходит в самой функции . Подставите в ретурн переменную с количеством оценок либо с их суммой и все.

Спустя 1 минута, 59 секунд (17.02.2012 - 13:50) ADiel написал(а):
Хранится в 100 балльной системе, раз делится на 20.
Покажите var_dump($results)

Спустя 2 минуты, 21 секунда (17.02.2012 - 13:52) inpost написал(а):
ADiel
array("avg"=>true) - второй аргумент как раз говорит о том, какие данные достать, поэтому в дампе будет только avg, так мне кажется.

Спустя 3 минуты, 13 секунд (17.02.2012 - 13:55) ADiel написал(а):
Мне кажется, этот параметр просто указывает на подсчет avg. Ну значит var_dump с avg true и без, если кроме avg в массиве нет ничего.
Логичнее, конечно, в SQL написать SUM а не считать всю выборку в php. За одно и проверим качество кода smile.gif

Спустя 2 минуты, 22 секунды (17.02.2012 - 13:58) ADiel написал(а):
Могли бы сказать, что это Wordpress
http://wordpress.org/extend/plugins/nextgen-gallery-voting/

/**
* Get the voting results of an image
*
@param int $pid The image ID
*
@param array $type The type of results to return (can limit number of queries if you only need the avg for example)
* bool type[avg] : Получить среднее арифметическое голосов
* bool type[list] : Получить все голоса
* bool type[number] : Получить количество голосов
*
@author Shaun <shaunalberts@gmail.com>
* @return array("avg"=>double average for image, "list"=>array of objects of all votes of the image, "number"=>integer the number of votes for the image)
*/

function nggv_getImageVotingResults($pid, $type=array("avg"=>true, "list"=>true, "number"=>true, "likes"=>true, "dislikes"=>true)) {
if(is_numeric($pid)) {
global $wpdb;

if($type["avg"]) {
$avg = $wpdb->get_row("SELECT SUM(vote) / COUNT(vote) AS avg FROM ".$wpdb->prefix."nggv_votes WHERE pid = '".$wpdb->escape($pid)."' GROUP BY pid");
}
if($type["list"]) {
$list = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."nggv_votes WHERE pid = '".$wpdb->escape($pid)."' ORDER BY dateadded DESC");
}
if($type["num"]) {
$num = $wpdb->get_row("SELECT COUNT(vote) AS num FROM ".$wpdb->prefix."nggv_votes WHERE pid = '".$wpdb->escape($pid)."' GROUP BY pid");
}
if($type["likes"]) {
$likes = $wpdb->get_row("SELECT COUNT(vote) AS num FROM ".$wpdb->prefix."nggv_votes WHERE pid = '".$wpdb->escape($pid)."' AND vote = 100 GROUP BY pid");
}
if($type["dislikes"]) {
$dislikes = $wpdb->get_row("SELECT COUNT(vote) AS num FROM ".$wpdb->prefix."nggv_votes WHERE pid = '".$wpdb->escape($pid)."' AND vote = 0 GROUP BY pid");
}

return array("avg"=>$avg->avg, "list"=>$list, "number"=>$num->num, "likes"=>($likes->num ? $likes->num : 0), "dislikes"=>($dislikes->num ? $dislikes->num : 0));
}else{
return array();
}
}


Спустя 4 минуты, 8 секунд (17.02.2012 - 14:02) ADiel написал(а):
Странно, что нет описания параметра likes и dislikes. Ну тут понятно. Выбрать количество всех 100 и в выбрать количество всех 0

Спустя 35 минут, 15 секунд (17.02.2012 - 14:37) Маргарита написал(а):
Подставиляю в ретурн переменную с количеством оценок либо с их суммой и все:

$out .= 'Средний балл: '.round(($results["avg"] / 20), 1)."";

на
$out .= 'Проголосовало: '.round(($results["num"] / 20), 1)."";
и получила нули.


var_dump($results) нет такой строки

$out .= 'Проголосовало: '$results["num"]"";

$out .= 'Проголосовало: '$results['num'].' ';

страница не грузится

Спустя 2 часа, 59 минут, 50 секунд (17.02.2012 - 17:37) ADiel написал(а):
Цитата
var_dump($results) нет такой строки

Тут я жутко матерюсь.
Цитата
$out .= 'Проголосовало: '.round(($results["num"] / 20), 1)."";

И зачем делить на 20?

Эта строка как то изменилась?
$results = nggv_getImageVotingResults($pid, array("avg"=>true));


Если и это не поможет, я не выдержу, психану и сделаю все за вас.

Спустя 1 час, 16 минут, 37 секунд (17.02.2012 - 18:54) inpost написал(а):
ADiel
Не поддавайся на провокации. Человек не программист, просто халяву ждёт, такие на форуме КАЖДЫЙ день. Ты будешь за каждого халявщика писать код?
Пусть платят, даже 100 рублей, сам принцип того, что у нас халявы нет.

Спустя 4 часа, 12 минут, 14 секунд (17.02.2012 - 23:06) ADiel написал(а):
Сначала показалось, что человек пытается. Теперь вижу, что нет желания подумать и сделать самостоятельно

Спустя 2 дня, 9 часов, 8 минут, 5 секунд (20.02.2012 - 08:14) Маргарита написал(а):
О чём подумать?
Может мне за день выучить весь синтаксис php?
Или оставить плагин нерабочим до тех пор, пока я не выучу?

Спустя 2 минуты, 15 секунд (20.02.2012 - 08:16) Маргарита написал(а):
Ого, сто рублей за строчку кода.
То есть за поменянные местами значения.
Сто рублей.

Спустя 10 минут, 42 секунды (20.02.2012 - 08:27) Undertaker написал(а):
Маргарита
Ну вот тебе и стимул выучить php будешь получать аж 100 рублей за строчку кода))))

Спустя 13 минут, 25 секунд (20.02.2012 - 08:40) Маргарита написал(а):
}elseif($options->voting_type == 2) {
$results = nggv_getImageVotingResults($pid, array("list"=>true));
$out .= '<div class="nggv-image-vote-container">';
$out .= 'Баллов: '.round(($results["list"]), 1)."";
$out .= '</div>';


Выводит всем ноль

Спустя 5 минут, 33 секунды (20.02.2012 - 08:46) Маргарита написал(а):
Undertaker, не думаю, что столько. Раз в 10 меньше.

скорее всего inpost не поделился с нами своими сокровенными мечтаниями.

тем более — за редакцию существующего.



Спустя 13 минут, 46 секунд (20.02.2012 - 09:00) Маргарита написал(а):

}elseif($options->voting_type == 2) {
$results = nggv_getImageVotingResults($pid, array("list"=>true));
$out .= '<div class="nggv-image-vote-container">';
$out .= $results["list"].' баллов';
$out .= '</div>';


выводит слова " Array баллов"

Спустя 2 часа, 28 минут, 13 секунд (20.02.2012 - 11:28) shmali написал(а):
За 10рублей
Цитата
не думаю, что столько. Раз в 10 меньше.

Никто компьютер не включит . Ваша проблема - элементарная , и ребята вам все что надо было уже сказали . Ваши вопросы сейчас похожи на "Ой мама , а что это такое ?" Сами посудите , с какой радости им начинать учить вас программированию ?
Все что надо для решения у вас уже есть , теперь минимум усилий , чуточку googla и все. Либо просто дайте парням 100 рублей и они сделают , я думаю 100 рублей не сумма для торга, не мелочитесь .

Спустя 2 часа, 22 минуты, 35 секунд (20.02.2012 - 13:50) Маргарита написал(а):
Цитата
За 10 рублей никто компьютер не включит
очень похоже на статусы маленьких девочек
Меньше чем за миллион долларов я не встану с постели

Спустя 46 минут, 37 секунд (20.02.2012 - 14:37) ADiel написал(а):
$out .= $results["list"].' баллов'; // = Array баллов

Потому что там массив.

вместо этой строчки напишите var_dump($results["list"]); и увидите что в массиве. Дальше самостоятельно.

shmali, Ну человек вроде начал потихоньку понимать. Помогать можно, но наводящими вопросами. а не писать код +)

Спустя 41 минута, 29 секунд (20.02.2012 - 15:19) shmali написал(а):
Цитата
Ну человек вроде начал потихоньку понимать. Помогать можно, но наводящими вопросами. а не писать код

Так и я о том же )) надо немного усилий прикладывать )
Цитата
очень похоже на статусы маленьких девочек

Пускай так )) не цепляет ))

Спустя 20 часов, 4 минуты, 12 секунд (21.02.2012 - 11:23) Маргарита написал(а):
В общем, если кому надо вывести в NextGen Gallery Voting Wordpress общее число баллов в галерею


}elseif($options->voting_type == 2) {
$results = nggv_getImageVotingResults($pid, array('list'=>true));
$vTotal = 0;
$out .= '<div class="nggv-image-vote-container">';
foreach ((array)$results['list'] as $key=>$val) {
$vTotal += $val->vote / 20; //divide by 20 as vote is stored out of 100
}
$out .= $vTotal.' баллов';
$out .= '</div>';



Спустя 12 минут, 55 секунд (21.02.2012 - 11:36) m4a1fox написал(а):
Маргарита
О! Я смотрю вы разобрались что к чему, в этом, чертногусломитчерезколено языке...

Спустя 1 час, 17 минут, 47 секунд (21.02.2012 - 12:53) ADiel написал(а):
Похоже на нагугленный вариант. Но, все равно, хорошо, что допил произошел сам smile.gif

Спустя 1 час, 11 минут, 4 секунды (21.02.2012 - 14:05) inpost написал(а):
Мне как, сразу забанить, или просто устным предупреждением отделать автора? smile.gif Автор, вопрос к тебе.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.