Переменная вне цикла while

204
04 февраля 2019, 12:30

Поломал себе всю голову. Не могу понять, как вынести готовую переменную за пределы цикла "WHILE".

Такой код:

 $my_prognoz = mysqli_query($connection, "SELECT * FROM `user`, `user_info` WHERE user.sid = user_info.sid ORDER BY `user_info`.`buy_ok` DESC LIMIT 50");
            while ($my_prognoz_r = mysqli_fetch_assoc($my_prognoz)){
$b_ok = $my_prognoz_r['buy_ok'];
$b_bad = $my_prognoz_r['buy_bad'];
$b_tot = $my_prognoz_r['total_prog'];
@$proc = ($b_ok / ($b_ok + $b_bad)) * 100;
$proc_i = round($proc);
?>
    <li class="prognozi_n">
                    <div class="prognoz_info_game"><?=$my_prognoz_r['secname'].' '.$my_prognoz_r['name'];?> - 
                        <span style="color: orange;"><?=$my_prognoz_r['nick'];?></span></div>
                    <div class="prognoz_cash"><span style="color: #c0ff07"><?=$b_ok;?></span> / <span style="color:#e86363 "><?=$b_bad;?></span> [<?=$proc_i;?>%]</div>       
    </li> 
<?}var_dump($proc_i);?>

В общем, в цикле я получаю нужное число $proc_i = 60;
А когда вызываю его за пределами цикла, оно всегда = 0; Пытался занести в СЕССИИ, всё равно = ноль

Answer 1

Переменная "$proc_i" - будет доступна после ее объявлении. Т.е переменная видна в конце первой итерации и во всех остальных итераций цикла, а также всё, что идет ниже цикла. А 0 - это скорее всего результат записи на последней итерации. Ищите проблему тут

if($b_tot != 0){
    $proc = ($b_ok / ($b_ok + $b_bad)) * 100;
}else{
    $proc = 0;
} 
READ ALSO
Создать изображение на сервере? [закрыт]

Создать изображение на сервере? [закрыт]

У меня есть фоновая картинка и есть некие данные в json-форматеЯ хочу создать изображение 1500*1500 с имеющимся у меня фоном и нанести на него текст...

170
Почему не работает jquery autocomplete?

Почему не работает jquery autocomplete?

В форме есть formgroup:

193
Как правильно включить pre-render к связке Laravel+VueJS?

Как правильно включить pre-render к связке Laravel+VueJS?

У меня есть приложение, написанное на Laravel, в связке с VueJS, в котором подключены VueRouter и VueAxiosПроблема заключается в том, что сайт не может сканироваться...

163