|
|
|
| Имеется 2 массива:
Например их значения:
$vote_ans:
[0] => "Компьютерные игры"
[1] => "Новости"
[2] => "Статистика"
[3] => "Софт"
-------
$vote_vans:
[0] => "243"
[1] => "279"
[2] => "233"
[3] => "53"
массив $vote_vans отвечает за каличество просмотров.
мне надо сделать сортировку массива $vote_vans.
в порядке убывания, то есть функция rsort, нам в помощь.
тогда получается, неправильный вывод массивы $vote_ans (не соотвествие кол-во просмотров, т. к. мы изменили последовательность значений в массиве $vote_vans)
вот я сделал код, чтобы этого избежать, но увы,что-то не работает=)
мб вы предложите, что-то лучше,а мб найдёте ошибочку в коде.
помогите плииз.
===========================================================
$vote_ans=explode('&del;',$sql_r['ans']);
$vote_vans=explode('&del;',$sql_r['vote']);
$vote_v=array_sum($vote_vans);
$vote_anss=$vote_ans;
$vote_vanss=$vote_vans;
rsort($vote_vans);
foreach($vote_vanss as $key => $value)
$vote_ans[$key]=$vote_anss[array_search($value,$vote_vans)];
|
| |
|
|
|
|
|
|
|
для: FlamySnake
(04.08.2009 в 17:10)
| | пердлогаю оставить вола в покое и сделать из двух массивов один ассоциативный или что гороздо лучше надёжнее и грамотнее использовать БД для обработки информации подобного рода. | |
|
|
|
|
|
|
|
для: Valick
(04.08.2009 в 17:18)
| | вы абсолютно правы!
я использую вкачестве БД MySQL.
и ещё.
думаете п очему переменные названы vote
??=)))))
потому что я делаю блок голосования.
но возникли сложности и поэтому я делаю не с помощью запроса к MySQL:
"ORDER BY id DESC", мб если вы знаете как сделать, напишите здесь как сделать, чтобы MySQL отсортировал за меня? | |
|
|
|
|
|
|
|
для: FlamySnake
(04.08.2009 в 17:51)
| | >вы абсолютно правы!
>
>я использую вкачестве БД MySQL.
Так приводите дамп базы и как хотите получить результат.
>"ORDER BY id DESC", мб если вы знаете как сделать, напишите здесь как сделать, чтобы MySQL отсортировал за меня?
Именно так это и делается.
Только видимо ORDER BY vote DESC
>думаете п очему переменные названы vote??=)))))
>потому что я делаю блок голосования.
A sense of obligation force brain exploding | |
|
|
|
|
|
|
|
для: FlamySnake
(04.08.2009 в 17:51)
| | А какие сложности возникают при сортировке запросом? | |
|
|
|
|
|
|
|
для: sim5
(04.08.2009 в 18:03)
| | СПС!
хоть 1 толком решает проблему=)
перевод в проценты: кол-во проголосовавших на 1 ответ / кол-во всего проголосовавших * 100
потом, соотвественно округляем round(<число>,2);
поэтому нужно, для начала узнать кол-во проголосовавших всего, чтобы выполнить действия, выше приведённые.
$sql="SELECT * FROM vote_ans WHERE vote_id='3' ORDER BY id DESC" // vote_id=3 - это номер голосования, то есть их на сайте может быть несколько, а именно несколько вопросов.
$sql_q=mysql_query($sql);
$sql_r=mysql_fetch_array($sql_q);
// дальше надо посчитать, сколько всего
if ($sql_r){
$vote_sum=0;
do
$vote_sum+=$sql_r['vote'];
while($sql_r=mysql_fetch_array($sql_q));
// дальше уже выводим сколько проголосвалоа, вообще голосование
// но я сделаю так, как сделал у себя, я незнаю как курсор вернуть
// на 1
do{
$vote_r=$sql_r['vote']/$vote_sum*100;
if (is_float($vote_r))
$vote_r=round($vote_r,2);
$face_v.='
<div class="VoteBl">
<div class="VoteTxt">
'.m_bb2html($sql_r['ans']).'</div>
<div class="VoteRez">
'.$vote_r.'%<br>('.$sql_r['vote'].')</div>
</div>';
}
while($sql_r=mysql_fetch_array($sql_q));
}
|
дальше уже идёт обработка интерфейса, так что нет смысла показывать.
я знаю, почему мне выводит всего 1 ответ в голосование, но незнаю как исправить-(.
посоветуйте плиз чё-нибудь | |
|
|
|