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

Вывод переменной из массива, значение которой хранится в базе данных

25.01.2016, 05:42. Показов 762. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Долго пробую сделать вывод переменной из массива, но не выходит. Я новичок. чуть более месяца как начал разбираться. Извиняюсь заранее, возможно, тут решение банальное, но у меня упорно не выходит.
Опишу проблему. Есть на сайте рейтинг в виде звезд. Нужно что бы в нужном месте можно было вывести результат рейтинга в числовом виде. Код вывода переменной примерно такой <?php echo rating_bar('id1',''); ?>, но этом коде выводится все составные рейтинга. Переменная $count, отвечает за средний рейтинг всех голосов, эту переменную нужно вывести.

Ниже приведу код из двух файлов, которые отвечают за вывод. Я не пойму к чему в коде обращаться.

Код: _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;
 }
}
?>

Код: _rpc.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
<?php
/*
Page:           rpc.php
Created:        Aug 2006
Last Mod:       Mar 18 2007
This page handles the 'AJAX' type response if the user
has Javascript enabled.
--------------------------------------------------------- 
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.
--------------------------------------------------------- */
header("Cache-Control: no-cache");
header("Pragma: nocache");
 
require('_config-rating.php'); // get the db connection info
 
//getting the values
$vote_sent = preg_replace("/[^0-9]/","",$_REQUEST['j']);
$id_sent = preg_replace("/[^0-9a-zA-Z]/","",$_REQUEST['q']);
$ip_num = preg_replace("/[^0-9\.]/","",$_REQUEST['t']);
$units = preg_replace("/[^0-9]/","",$_REQUEST['c']);
$ip = $_SERVER['REMOTE_ADDR'];
 
if ($vote_sent > $units) die("Sorry, vote appears to be invalid."); // kill the script because normal users will never see this.
 
 
//connecting to the database to get some information
$query = mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id_sent' ")or die(" Error: ".mysql_error());
$numbers = mysql_fetch_assoc($query);
$checkIP = unserialize($numbers['used_ips']);
$count = $numbers['total_votes']; //how many votes total
$current_rating = $numbers['total_value']; //total number of rating added together and stored
$sum = $vote_sent+$current_rating; // add together the current vote value and the total vote value
$tense = ($count==1) ? "vote" : "votes"; //plural form votes/vote
 
// checking to see if the first vote has been tallied
// or increment the current number of votes
($sum==0 ? $added=0 : $added=$count+1);
 
// if it is an array i.e. already has entries the push in another value
((is_array($checkIP)) ? array_push($checkIP,$ip_num) : $checkIP=array($ip_num));
$insertip=serialize($checkIP);
 
//IP check when voting
$voted=mysql_num_rows(mysql_query("SELECT used_ips FROM $rating_dbname.$rating_tableName WHERE used_ips LIKE '%".$ip."%' AND id='".$id_sent."' "));
if(!$voted) {     //if the user hasn't yet voted, then vote normally...
 
    if (($vote_sent >= 1 && $vote_sent <= $units) && ($ip == $ip_num)) { // keep votes within range, make sure IP matches - no monkey business!
        $update = "UPDATE $rating_dbname.$rating_tableName SET total_votes='".$added."', total_value='".$sum."', used_ips='".$insertip."' WHERE id='$id_sent'";
        $result = mysql_query($update);     
    } 
} //end for the "if(!$voted)"
// these are new queries to get the new values!
$newtotals = mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id_sent' ")or die(" Error: ".mysql_error());
$numbers = mysql_fetch_assoc($newtotals);
$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
 
// $new_back is what gets 'drawn' on your page after a successful 'AJAX/Javascript' vote
 
$new_back = array();
 
$new_back[] .= '<ul class="unit-rating" style="width:'.$units*$rating_unitwidth.'px;">';
$new_back[] .= '<li class="current-rating" style="width:'.@number_format($current_rating/$count,2)*$rating_unitwidth.'px;">Current rating.</li>';
$new_back[] .= '<li class="r1-unit">1</li>';
$new_back[] .= '<li class="r2-unit">2</li>';
$new_back[] .= '<li class="r3-unit">3</li>';
$new_back[] .= '<li class="r4-unit">4</li>';
$new_back[] .= '<li class="r5-unit">5</li>';
$new_back[] .= '<li class="r6-unit">6</li>';
$new_back[] .= '<li class="r7-unit">7</li>';
$new_back[] .= '<li class="r8-unit">8</li>';
$new_back[] .= '<li class="r9-unit">9</li>';
$new_back[] .= '<li class="r10-unit">10</li>';
$new_back[] .= '</ul>';
$new_back[] .= '<p class="voted1">Рейтинг машины: '.@number_format($sum/$added,1).' <strong class="rate-cifre">('.$count.'<strong class="ratelike"></strong>)</p></strong>';
 
$allnewback = join("\n", $new_back);
 
// ========================
 
//name of the div id to be updated | the html that needs to be changed
$output = "unit_long$id_sent|$allnewback";
echo $output;
?>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2016, 05:42
Ответы с готовыми решениями:

Как проще обновлять (пересчитывать) значение переменной, в которой хранится номер последней непустой строки?
Добрый день, уважаемые мудрецы! Подскажите пожалуйста, есть ли решение такого вопроса: Выгрузив на лист содержимое массива...

В переменной типа string хранится имя переменной, к которой нужно обратиться. Как это сделать?
Пример: int speed = 10; string s = &quot;speed&quot;; MessageBox.Show(/*как-то обратиться к переменной, чье имя содержится в переменной...

Обращение к таблице название которой хранится в переменной
Вот хочу создать хранимую процедуру, которой через параметр можно было б передать название таблицы базы данных и сделать какието действия...

2
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
25.01.2016, 09:17
Цитата Сообщение от Ololo12 Посмотреть сообщение
Код вывода переменной примерно такой <?php echo rating_bar('id1','');
Тут вобще нет переменных, это код вывода обращения к функции.
Еще второй момент, у вас функция возвращает НЕ массив, а строку, а массив возвращается только в том случае, если у вас в функцию rating_bar передается переменная - $static, которая должна быть равна "static"
Лучше покажите вывод, и выделите то что именно хотите вывести
0
1 / 1 / 1
Регистрация: 15.10.2015
Сообщений: 37
26.01.2016, 03:40  [ТС]
Мне нужно вывести $count по номеру id1. Строка из файла _drawrating.php
PHP
1
2
 $rater.='>Рейтинг машины: '.$rating1.' <strong class="rate-cifre">('.$count.'<strong class="ratelike"></strong>)</strong>';
      $rater.='  </p>';
А тут из файла Код: _rpc.php тоже сть строка где таже переменная, которая выводит одно и то же значение. Я не пойму к чему еще обращаться.
PHP
1
$new_back[] .= '<p class="voted1">Рейтинг машины: '.@number_format($sum/$added,1).' <strong class="rate-cifre">('.$count.'<strong class="ratelike"></strong>)</p></strong>';
А это
PHP
1
<?php echo rating_bar('id1',''); ?>
выводит рейтинг бар у которого id1, а мне получается нужно вывести только число, значение которого хранится в $count.

Добавлено через 9 часов 54 минуты
Я пока что разобрался только с тем что файл _drawrating.php отвечает за вывод рейтинга и значений этого рейтинга.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2016, 03:40
Помогаю со студенческими работами здесь

SetFocus на поле имя которой хранится в переменной
Есть переменная в vba Pole которая содержит имя поля для перехода (Поле1 или Поле2 … ПолеN). Как осуществить переход к полю имя которого...

Возможно ли вызвать функцию, имя которой хранится в переменной типа char* ?
Или возможно ли создать указатель на функцию по имени в переменной. Извиняюсь за неконкретный вопрос, просто ещё не полностью продумал...

Достать из ресурсов картинку, имя которой хранится в переменной (Visual Studio 2010)
На форме есть pictureBox. В него загружается одна из картинок, которые были добавлены в ресурсы через свойство проекта. Имя картинки,...

Подключение к базе данных через значение переменной, содержащей путь к БД
Всем доброго рабочего дня. Подскажите как заменить путь к базе данных на переменную adr_DB, содержащую путь к этой базе данных? conn...

Как сравнить значение переменной типа String с данными в базе данных?
Допустим, у меня есть String str = &quot;test&quot;;, можно ли как-то сравнить его с данными в базе данных


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru