2013-04-25 108 views
-2
$sql = mysql_query("SELECT * From orders"); 

while ($row = mysql_fetch_array($sql)) 
{ 
    $datef = strtotime($row['Date1']); 
    $dates = strtotime($row['Date2']); 
    $rprice = $row['Pprice']; 

    $datediff = floor(($datef + $dates)/86400); 
    $total = $datediff * $rprice; 

    echo $total; 
} 

的代码后,我想更新一个表,并插入到科拉姆每个行的价格。至于我赞同$total我回来只是1行...如何将一个变量的值传递到MySQL的foreach行

+0

[**请不要在新代码**中使用'mysql_ *'函数](http://bit.ly/phpmsql)。他们不再被维护[并且被正式弃用](http://j.mp/XqV7Lp)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。 – Kermit 2013-04-25 18:54:46

+0

你错过了你的查询结束报价,这只是一个错字? – Revent 2013-04-25 18:55:28

+0

这个问题很奇怪 – samayo 2013-04-25 18:56:02

回答

1

试试这个,如果它工作

function total($date1,$date2,$price){ 

    $datedif = floor(($date1 + $date2)/86400); 
$total = $datedif * $price ; 
    return $total ; 

} 
$sql=mysql_query("SELECT * From orders"); 

while ($row = mysql_fetch_array($sql)) 

{ $datef = strtotime($row['Date1']); 
    $dates = strtotime($row['Date2']); 
    $rprice=$row['Pprice']; 
    echo total($datef,$dates,$rprice).'<br />' ; 

} 

编辑:

insert into ammounts (Total_Cost) VALUES ('total($datef,$dates,$rprice)') 
WHERE id = '$row["id"]' 
+0

不,我只是拿回2个日期和再次1行的价格 – marina 2013-04-25 19:11:52

+0

如果我呼应$ rprice正常工作,我得到的所有行 – marina 2013-04-25 19:15:52

+0

尼斯据其确定,现在我想THA价格插入一列 – marina 2013-04-25 19:25:06

0

假设你有order_id coulmn作为主键和total列在您的orders表中。

while ($row = mysql_fetch_array($sql)) 

{ $datef = strtotime($row['Date1']); 
    $dates = strtotime($row['Date2']); 
    $rprice=$row['Pprice']; 
    $total=total($datef,$dates,$rprice); 
    $query=mysql_query("UPDATE orders SET total = $total WHERE order_id = '$row[order_id]'") or die(mysql_error()); 
    echo $total.'<br />' ; 
}