2013-04-25 47 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 />' ; 
} 
相關問題