2016-11-08 3 views
-2

У меня есть таблица со столбцом заселенного по формуле:Почему математика сохраняется в базе данных MySQL?

if ($row['importfee'] > 0) { 
$sum_total= $row['stock']*($row['cost']*($row['importfee']/100)+$row['cost']+$row['prepcost']); 
print ($sum_total); 
$total_price += $sum_total; 
    }else{ 
$sum_total= $row['stock']*($row['cost']+$row['prepcost']); 
echo $sum_total; 
$total_price += $sum_total; 
    } 

напр. запас составляет 400, стоимость - 200, prepcost - 0 - выход - 80000 Этот столбец отображается как обычный текст, а не вход.

Следующая Я посылаю $ sum_total на скрытый вход для $ _POSTing:

<input name='totalcost[]' type='text' id='totalcost' value='<?php echo $sum_total ?>'> 

отл. Выход 80000

Наконец я обновить свою базу данных:

$totalcost= $_POST['totalcost']; 

$sql = "UPDATE $tbl_name2 SET 
productname='".$productname[$i]."',stock='".$stock[$i]."',cost='".$cost[$i]."',maker='".$maker[$i]."',customer='".$customer[$i]."',department='".$department[$i]."',comment='".$comment[$i]."',reportdate='".$reportdate."',page='".$page[$i]."',importfee='".$importfee[$i]."',prepcost='".$prepcost[$i]."',totalcost='".$totalcost[$i]."*(".$cost[$i]."+".$prepcost[$i].");' 
WHERE id='".$id2[$i]."'"; 

И я получаю прекрасный сюрприз в моей базе данных: отл. запись в базе данных [totalcost] 80000 * (200+);

Я ожидал, что запись будет [TotalCost] 80000.

Почему формула отправляется в базу данных, но не отражена в моей таблице? Как я могу отправить только значение 80000 без математики в базу данных? Я работаю на сервере WAMP на данный момент, если t имеет значение.

+2

echo $ sql, и вы увидите, почему – nogad

+0

Пожалуйста, не делайте таких запросов. Это зияющая дыра в безопасности. Не знаю, какой обработчик базы данных вы используете, но посмотрите «подготовленные запросы», пожалуйста, и используйте либо mysqli_, либо PDO. – junkfoodjunkie

+2

И ваш код работает точно так, как должен - вот что вы ввели в столбец '[totalcost]': totalcost = '. $ Totalcost [$ i]. "* (". $ Cost [$ i]. «+». $ prepcost [$ i]. »);« Все это входит в столбец. – junkfoodjunkie

ответ

0

Добавлено как ответ (с комментариями):

Ваш код работает точно так, как и должно быть - вот что вы положили в [totalcost] колонку:

totalcost='".$totalcost[$i]."*(".$cost[$i]."+".$prepcost[$i]‌​."); 

Все, что входит в колонну.

Смежные вопросы