формула в строке

Статус
В этой теме нельзя размещать новые ответы.

Casper_R

Создатель
Регистрация
2 Май 2007
Сообщения
88
Реакции
33
всем привет.

есть хранящееся в ячейке мускула мат. выражение. например "35*2"
при выводе этой штуки в PHP никак не могу добиться того, чтобы это значение высчитывалось!!!
PHP:
echo $cost или echo (int)$cost
выводят лишь "35" ... как победить? заранее спс
 
Что за переменную Вы выводите?
Если содержание ячейки, и правильно и будет выводиться 35, как по Вашему база должна посчитать выражение? БД это средство хранения информации.
 
спс :) уже разобрался. идея была в том, что в БД хранится некая формула, а не результат. а при выводе PHP ее должен был посчитать (именно пхп понятно, что не БД).
в общем я просто забыл про функцию eval :)
 
изучать функцию eval
 
всем привет.
есть хранящееся в ячейке мускула мат. выражение. например "35*2"
при выводе этой штуки в PHP никак не могу добиться того, чтобы это значение высчитывалось!!!
PHP:
echo $cost или echo (int)$cost
выводят лишь "35" ... как победить? заранее спс
Парсить. В этой ветке была похожая тема, там выкладывали ссылку на парсер, который производит вычисление, напсанных в текстовом виде формул.
Если не нужно ничего серьёзного, то можно и в ручную спарсить через preg или прочие:

PHP:
preg_match_all('|(\d+?)\*(\d+?)\Z|', '10*245', $r);
echo $r[1][0]*$r[2][0];


$r = explode('*', '10*245*10');
$rez =0;
foreach($r as $s){
	$rez = $rez*$s;
}
echo $rez
 
быстрое решение
PHP:
<?php
$code = '100*823';
$code = 'return '.$code.';';
echo eval($code);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху