Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
1 / 1 / 1
Регистрация: 15.10.2015
Сообщений: 37

Как вывести переменную из функции

29.01.2016, 08:04. Показов 3713. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уже создавал похожую тему, но вопрос задал не особо понятно, сейчас более осмысленно решил описать проблему, так как самостоятельно решить её не получается.

Такая задача. Есть скрипт звездного рейтинга. Выводятся на экран звездочки и числовое значение рейтинга. Есть переменная в которой хранится значение. Задача такая нужно вывести, только эту переменную. Картинка для примера, есть текстовая строчка, где выводится информация: Rating: 3.4, нужно вывести только число "3.4". Предположительно значение числа хранится в переменной $count.



Для вывода рейтинга подключается файл _drawrating.php , а за сам вывод отвечает строчка <?php echo rating_bar('id1',''); ?> ,id1 - это идентификатор голосования, который хранится в БД , которую можно вставить в то месте где нужно что бы отображался рейтинг.

Скрипт взял здесь: coderhs.com/archive/unratajax

Что нужно написать в этой строчке <?php echo rating_bar('id1',''); ?> что бы выводить не весь рейтинг, а только число?


Сам код файла _drawrating.php :

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
/*
Page:           _drawrating.php
Created:        Aug 2006
Last Mod:       Mar 18 2007
The function that draws the rating bar.
--------------------------------------------------------- 
ryan masuga, masugadesign.com
ryan@masugadesign.com 
Licensed under a Creative Commons Attribution 3.0 License.
http://creativecommons.org/licenses/by/3.0/
See readme.txt for full credit details.
--------------------------------------------------------- */
function rating_bar($id,$units='',$static='') { 
 
require('_config-rating.php'); // get the db connection info
    
//set some variables
$ip = $_SERVER['REMOTE_ADDR'];
if (!$units) {$units = 10;}
if (!$static) {$static = FALSE;}
 
// get votes, values, ips for the current rating bar
$query=mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id' ")or die(" Error: ".mysql_error());
 
 
// insert the id in the DB if it doesn't exist already
// see: http://www.masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar/#comment-121
if (mysql_num_rows($query) == 0) {
$sql = "INSERT INTO $rating_dbname.$rating_tableName (`id`,`total_votes`, `total_value`, `used_ips`) VALUES ('$id', '0', '0', '')";
$result = mysql_query($sql);
}
 
$numbers=mysql_fetch_assoc($query);
 
 
if ($numbers['total_votes'] < 1) {
    $count = 0;
} else {
    $count=$numbers['total_votes']; //how many votes total
}
$current_rating=$numbers['total_value']; //total number of rating added together and stored
$tense=($count==1) ? "vote" : "votes"; //plural form votes/vote
 
// determine whether the user has voted, so we know how to draw the ul/li
$voted=mysql_num_rows(mysql_query("SELECT used_ips FROM $rating_dbname.$rating_tableName WHERE used_ips LIKE '%".$ip."%' AND id='".$id."' ")); 
 
// now draw the rating bar
$rating_width = @number_format($current_rating/$count,2)*$rating_unitwidth;
$rating1 = @number_format($current_rating/$count,1);
$rating2 = @number_format($current_rating/$count,2);
 
 
if ($static == 'static') {
 
        $static_rater = array();
        $static_rater[] .= "\n".'<div class="ratingblock">';
        $static_rater[] .= '<div id="unit_long'.$id.'">';
        $static_rater[] .= '<ul id="unit_ul'.$id.'" class="unit-rating" style="width:'.$rating_unitwidth*$units.'px;">';
        $static_rater[] .= '<li class="current-rating" style="width:'.$rating_width.'px;">Currently '.$rating2.'/'.$units.'</li>';
        $static_rater[] .= '</ul>';
        $static_rater[] .= '<p class="voted">'.$id.'. Rating: <strong> '.$rating1.'</strong>/'.$units.' ('.$count.' '.$tense.' cast) <em>This is \'static\'.</em></p>';
        $static_rater[] .= '</div>';
        $static_rater[] .= '</div>'."\n\n";
 
        return join("\n", $static_rater);
 
 
} else {
 
      $rater ='';
      $rater.='<div class="ratingblock">';
 
      $rater.='<div id="unit_long'.$id.'">';
      $rater.='  <ul id="unit_ul'.$id.'" class="unit-rating" style="width:'.$rating_unitwidth*$units.'px;">';
      $rater.='     <li class="current-rating" style="width:'.$rating_width.'px;">Currently '.$rating2.'/'.$units.'</li>';
 
      for ($ncount = 1; $ncount <= $units; $ncount++) { // loop from 1 to the number of units
           if(!$voted) { // if the user hasn't yet voted, draw the voting stars
              $rater.='<li><a href="db.php?j='.$ncount.'&amp;q='.$id.'&amp;t='.$ip.'&amp;c='.$units.'" title="'.$ncount.' out of '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>';
           }
      }
      $ncount=0; // resets the count
 
      $rater.='  </ul>';
      $rater.='  <p';
      if($voted){ $rater.=' class="voted"'; }
  
       $rater.='>Рейтинг машины: '.$rating1.' <strong class="rate-cifre">('.$count.'<strong class="ratelike"></strong>)</strong>';
      $rater.='  </p>';
      $rater.='</div>';
      $rater.='</div>';
      return $rater;
 }
}
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.01.2016, 08:04
Ответы с готовыми решениями:

Как передать переменную из одной функции в другую функции
Здравствует. Есть 2 функции function html_detail_result(&amp;$data) { ob_start(); $vdata = &amp;$data; $title = $vdata.'...

Как вывести переменную?
Всем привет! Вообщем, возникла такая проблема, есть php код, и в нём html. На проблемную точку я указал комментом. Проблема в том, что надо...

Как вывести переменную в теге li
Всем доброго здравия. Структура html такая: &lt;ul&gt; &lt;li&gt;Вывод переменной&lt;/li&gt; &lt;/ul&gt;

11
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
29.01.2016, 10:13
Лучший ответ Сообщение было отмечено Ololo12 как решение

Решение

вместо
PHP
1
return $rater;
написать
PHP
1
return array($rater,$rating1,$count);
вызываете функцию
PHP
1
$arr=rating_bar(блаблабла);
и в переменной $arr[0] будет то, что и сейчас у Вас возвращается функцией, а в $arr[1] и $arr[2] - еще и значения. Вам нужно, насколько я понял, $arr[2]
1
1 / 1 / 1
Регистрация: 15.10.2015
Сообщений: 37
29.01.2016, 16:30  [ТС]
Нужно что бы звездный рейтинг был в одном месте, а числовое значение еще выводить рейтинга в другом месте, без потери визуального оформления звездного рейтинга.
0
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
29.01.2016, 16:35
Ololo12, В однов, в другом, догодайтесь где я имел ввиду
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
29.01.2016, 16:37
я же написал
Цитата Сообщение от Laroux Посмотреть сообщение
в переменной $arr[0] будет то, что и сейчас у Вас возвращается функцией
1
1 / 1 / 1
Регистрация: 15.10.2015
Сообщений: 37
29.01.2016, 16:57  [ТС]
Я в самом первом посте описал проблему.

Добавлено через 2 минуты
после исправлений какие вы предложили выводится только слово "Array".

Добавлено через 12 минут
Не знаете, где за деньги решают подобные проблемы? Там биржи специальные.
0
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
29.01.2016, 17:02
Ololo12, Array - массив, в нём лежат значение )
1
1 / 1 / 1
Регистрация: 15.10.2015
Сообщений: 37
29.01.2016, 17:08  [ТС]
я не пойму как это написать что бы вывести, каша в голове какая-то. Выводит просто пустой рейтинг, тот код что вы написали.
0
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
29.01.2016, 17:11
Ololo12,
PHP
1
var_dump($arr)
и посмотрите что лежит в этом массиве
0
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
29.01.2016, 17:15
Лучший ответ Сообщение было отмечено Ololo12 как решение

Решение

Цитата Сообщение от Ololo12 Посмотреть сообщение
после исправлений какие вы предложили выводится только слово "Array".
Laroux предложил вам рациональное решение, вместо
PHP
1
<?php echo rating_bar('id1',''); ?>
Напишите так:
PHP
1
<?php $arr = rating_bar('id1',''); echo $arr['1']; ?>
1
1 / 1 / 1
Регистрация: 15.10.2015
Сообщений: 37
29.01.2016, 17:32  [ТС]
PHP
1
2
3
4
Arrayarray(3) { [0]=> string(1774) "
Currently 0.00/1012345678910
Рейтинг машины: 0.0 (0)
" [1]=> string(3) "0.0" [2]=> int(0) }
Добавлено через 9 минут
Что бы вы понимали почему я туплю, я новичок в php После всех рекомендаций, задача решается, и это очень хорошо. В нужном месте нужное число выводится, но беда, появляется проблема, основной рейтинг исчезает и появляется слово Array.

Добавлено через 6 минут
Всем кто помогал спасибо и форуму спасибо, проблему решил, точнее за меня решили, я просто понял что мне объясняли. Позже тут опишу задачу которую я ставил и как она решилась, для кому нужно будет решать такое же.
0
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
29.01.2016, 17:35
Лучший ответ Сообщение было отмечено Ololo12 как решение

Решение

Цитата Сообщение от Ololo12 Посмотреть сообщение
основной рейтинг исчезает
Верните все назад в своей функции, что бы было так, как было до того как вы написал на форум, и добавьте сразу после функции rating_bar в файле _drawrating.php вот этот код:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function rating_bar_number($id,$units='',$static='') { 
 
  require_once('_config-rating.php'); // get the db connection info
 
  // get votes, values, ips for the current rating bar
  $query=mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id' ")or die(" Error: ".mysql_error());
   
   
  // insert the id in the DB if it doesn't exist already
  // see: http://www.masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar/#comment-121
  if (mysql_num_rows($query) == 0) {
    $sql = "INSERT INTO $rating_dbname.$rating_tableName (`id`,`total_votes`, `total_value`, `used_ips`) VALUES ('$id', '0', '0', '')";
    $result = mysql_query($sql);
  }
   
  $numbers=mysql_fetch_assoc($query);
   
   
  if ($numbers['total_votes'] < 1) {
      $count = 0;
  } else {
      $count=$numbers['total_votes']; //how many votes total
  }
  $current_rating=$numbers['total_value']; //total number of rating added together and stored
 
  $rating1 = @number_format($current_rating/$count,1);
  return $rating1;
}
И там где нужно только число вызываете так:
PHP
1
<?php echo rating_bar_number('id1',''); ?>
А где основной рейтинг:
PHP
1
<?php echo rating_bar('id1',''); ?>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.01.2016, 17:35
Помогаю со студенческими работами здесь

Как вывести переменную из mysql?
Здравствуйте, всех поздравляю с Новым Годом. Скажите пожалуйста, как вывести переменную из mysql? То есть в тексте, есть переменная...

Как вывести переменную из цикла?
имеется данный цикл foreach ($data as $q =&gt; $a) { $result = R::getAll('SELECT * FROM questions WHERE id = '.$q.' '); ...

Как вывести такую переменную?
Можно ли вывести данные из переменной если переменная объявлена ниже вывода ? Зачем мне это надо: Есть функция которая работает в самом...

Как получить переменную из функции?
Здравствуйте, вопрос в названии темы))

Как вывести переменную из файла регистрации
У меня есть регистрация, при регистрации пользователь указывает логин,пароль,мыло и телефон. Вот как мне вывести номер телефон...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru