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

Пересчёт нескольких значений с выводом одного числа

11.01.2018, 15:43. Показов 850. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня, с php познакомился не так давно, поэтому всё ещё не всё понимаю
Не так давно столкнулся с надобностью подсчёта количества места, которое занимают фото, для покупки карты памяти.
Решил собственно сделать так сказать калькулятор таких вещей для личного пользования. Возникла проблема, как это реализовать, взял за основу обычный калькулятор, но это всё таки немного не то. Если с хтмл частью всё понятно, то с пхп, сложновато. Даже не знаю как лучше составить вычисление. Поэтому и решил обратиться к знающим людям, подскажите как лучше
Пока что код выглядит примерно так:
HTML5
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
<html=utf8>
<body>
 
<form method="POST" action=''>
        <i>Input data:</i><br><br>
        Lenght:
        <input type="text" name="in1"/><br>
        Width:
        <input type="text" name="in2"/><br>
        Codetype (24/26/32):
        <input type="text" name="in3"/><br>
        Amount of foto:
        <input type="text" name="in4"/><br>
    <!--Вариант - калькулятор-->  
<!--        <input type="radio" name="do" value='*'/>1
        <input type="radio" name="do" value='*'/> bit-bait
        <input type="radio" name="do" value='/'/> bait-mb
        <input type="radio" name="do" value='*'/> nositel
-->
        <input type="submit" name="sub" value='Count'>
        <input type="reset" name="bck" value='Reset'>
 
 
</form>
</body>
</html>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// Третьих вариант попытки, через иссет.
if (isset($_POST['in1']) && isset($_POST['in2']) && isset($_POST['in3']) && isset($_POST['in4'])){
    $in1=$_POST['in1'];
    $in2=$_POST['in2'];
    $in3=$_POST['in3'];
    $in4=$_POST['in4'];
// Попытка сделать через калькулятор
/*  if ($_POST['sub'])
    if ($do=='*'){$a=$in1*$in2; echo "Pixel=" .$a;}
    elseif ($do=='*'){$b=$a*$in3; echo "Bit=" .$b;}
    elseif ($do=='*'){$c=$b*($z=8)$z; echo "Bait=" .$c;}
    elseif ($do=='/'){$d=($c/1024)/1024; echo "MB=" .$d;}
    elseif ($do=='*'){$e=($d*$in4)/($x=1024)$x; echo "Needed Space=" .$e."GB";}
    else echo "Error";
    }
    */
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2018, 15:43
Ответы с готовыми решениями:

проблема с выводом нескольких значений после цикла for
a,b = map(int,input().split()) for i in range(a, b+1): if a &lt; b: print(i, end=&quot; &quot;) print (b-a+1) Выводит: ...

Вставка одного из нескольких значений в таблицу
Здрасьте! Подскажите, каким образом прописать в Delphi такую ситуацию: 3 Edit'а, один содержит значение, два пустых. Пишу...

Перенос нескольких значений с одного листа на другой
Здравствуйте. В документе имеется 3 листа (вкладки), на каждом отдельная таблица. На первых 2 листах: 1 столбец - фамилии, 2 столбец -...

11
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
11.01.2018, 16:33
Koruya, что именно нужно сделать? Вывести результат умножения 4 чисел?
0
0 / 0 / 0
Регистрация: 11.01.2018
Сообщений: 16
11.01.2018, 16:43  [ТС]
Извиняюсь, забыл этот момент уточнить.

Есть значения: длина, ширина, формат записи (TIFF,CMYK и т.п), количество фото.

Решение задачи если на бумаге будет примерно такое:
длина*ширину=пиксели
пиксели*формат(24/32)=бит
бит переводим в байты, находим мегабайты.
мегабайты*количество фото=количество необходимого места в мб
переводим в гб и получаем примерное нужное количество места для хранения. Скажем 130 гб, значит нужно будет купить карту памяти на 256 гб.

От кода хотел видеть всё это в одном действии без лишних кнопок, мол нажал подсчитать после ввода данных, он всё сделал и вывел $result. Но как это записать без понятия. Попытки сделать раздельно привели лишь к не правильно работающему коду.
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
11.01.2018, 16:56
Koruya, тогда можно обойтись без PHP.

HTML5
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
<html>
    <body>
        <form method="POST" action=''>
            <i>Input data:</i>
            <br><br>
            
            Lenght:
            <input type="text" id="in1">
            <br>
            
            Width:
            <input type="text" id="in2"/>
            <br>
            
            Codetype (24/26/32):
            <input type="text" id="in3"/>
            <br>
            
            Amount of foto:
            <input type="text" id="in4"/>
            <br>
        <input type="submit" name="sub" value='Count'>
        <input type="reset" name="bck" value='Reset'>
        </form>
        
        Результат: <div class="result"></div>
        <script src="https://yastatic.net/jquery/3.1.1/jquery.min.js"></script>
        <script>
        $('form').on('submit', function(e){
            e.preventDefault();
            var bits = parseInt($('#in1').val()) * parseInt($('#in2').val()) * parseInt($('#in3').val()) * parseInt($('#in4').val());
            var gb = bits / 8589934592;
            $('.result').html(gb.toFixed(2) + ' Gb');
        });
        </script>
    </body>
</html>
1
0 / 0 / 0
Регистрация: 11.01.2018
Сообщений: 16
11.01.2018, 17:00  [ТС]
Угу, можно, я даже находил решения. Но если честно после определённого периода проснулся уже интерес, хочется всё таки сделать именно на пхп
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
11.01.2018, 17:08
Koruya,
PHP/HTML
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
<?php
    if(isset($_POST['sub']))
    {
        $in1 = $_POST['in1'];
        $in2 = $_POST['in2'];
        $in3 = $_POST['in3'];
        $in4 = $_POST['in4'];
        
        $bits = $in1 * $in2 * $in3 * $in4;
        $gb = round($bits / 8589934592, 2);
        $result = $gb . ' Gb';
    }
    else
        $result = $in1 = $in2 = $in3 = $in4 = null;
?>
 
<html>
    <body>
        <form method="POST">
                <i>Input data:</i><br><br>
                Lenght:
                <input type="text" name="in1" value="<?=$in1?>"/><br>
                Width:
                <input type="text" name="in2" value="<?=$in2?>"/><br>
                Codetype (24/26/32):
                <input type="text" name="in3" value="<?=$in3?>"/><br>
                Amount of foto:
                <input type="text" name="in4" value="<?=$in4?>"/><br>
                <input type="submit" name="sub" value='Count'>
                <input type="reset" name="bck" value='Reset'>
        </form>
        <br>
        Результат: <?=$result?>
    </body>
</html>
0
0 / 0 / 0
Регистрация: 11.01.2018
Сообщений: 16
11.01.2018, 17:31  [ТС]
А откуда собственно взялось "8589934592, 2" ?
И зачем ставить код от пхп в хтмл (<?=$in3?>), когда его адрес указывается в $in1 = $_POST['in1'];?
Собственно не работает?
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
11.01.2018, 17:41
Цитата Сообщение от Koruya Посмотреть сообщение
А откуда собственно взялось "8589934592, 2" ?
8589934592 - это количество бит в гигабайте, скопипастил из гугла.

Последняя цифра 2 относится к функции round, означает оставить 2 знака после запятой.

Цитата Сообщение от Koruya Посмотреть сообщение
И зачем ставить код от пхп в хтмл (<?=$in3?>), когда его адрес указывается в $in1 = $_POST['in1'];?
Не совсем понял вопрос. Подставляем $in3 в value чтобы после перезагрузки страницы введённые значения не исчезли. Можно было бы подставлять сразу $_POST['in3'], но тогда при обычном заходе на страницу (без отправки формы) PHP будет показывать ошибки (если их отображение включено).

Цитата Сообщение от Koruya Посмотреть сообщение
Собственно не работает?
Что именно? Какие действия выполняете, что происходит на экране?
0
0 / 0 / 0
Регистрация: 11.01.2018
Сообщений: 16
11.01.2018, 17:58  [ТС]
В строках ввода показывается <?=$in3?>.
После ввода данных на месте этих значений, ничего не происходит.
Нажатие кнопок так-же не приводит к какому либо результату.
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
11.01.2018, 18:05
Koruya, а вы точно на веб-сервере запускаете этот скрипт?

PHP код не выполняется / не работает / выводится в браузер / пустая белая страница
0
0 / 0 / 0
Регистрация: 11.01.2018
Сообщений: 16
12.01.2018, 04:25  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
Koruya, а вы точно на веб-сервере запускаете этот скрипт?
Да, для тестирования запускал на локальном вампе. После этого для проверки так-же пробовал запустить на хосте. Итог один, другие файлы открывает нормально.
0
0 / 0 / 0
Регистрация: 11.01.2018
Сообщений: 16
17.01.2018, 13:21  [ТС]
Ошибка с моей стороны, сохранил изначально файл в формате html. Спасибо за помощь, всё работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2018, 13:21
Помогаю со студенческими работами здесь

Вывод из базы нескольких значений одного параметра
Добрый день! У меня есть две таблицы: tema и catalog. В таблице catalog перечислены позиции и есть колонка category, где указана...

Перенос нескольких значений с одного листа на другой
Здравствуйте, уважаемое сообщество! В книге 2 листа, в одном из которых (&quot;Исходные&quot;) содержатся данные на детей. Во втором листе...

Передача через форму нескольких значений одного параметра POST
&lt;?php for ($i=0; $i&lt;count($a); $i++) { ?&gt; &lt;input name=&quot;category-type&quot; type=&quot;&lt;?php echo $chooser; ?&gt;&quot; value=&quot;&lt;?php echo $list ;...

Не удаётся выполнить точный расчет для одного или нескольких указанных значений
Маткад отказывается трудиться!? при решении системы ОДУ (три уравнения, каждое второго порядка) при помощи блока Odesolve Выводится...

Составление одного числа из нескольких
Один вопрос как? У меня есть несколько int чисел и из них мне надо сделать одно. Например так: есть числа 1 8 9 7 и их надо превратить...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru