2013-04-25 80 views
0
while ($row = mysql_fetch_array($sqlquery)) 
     { 

    $fd = strtotime($row['date1']); 
    $sd = strtotime($row['date2']); 


    $dates = floor(($sd - $fd)/86400); 

    $price = $dates * 25; 
    } 

我想插入另一个表$price为每一行。我无法使用单个插入来执行此操作,因为$price每次都不相同。向MySQL插入一个变量,每个行都变化

+0

有什么错误?可能你可以将$价格保存在一个数组中 – jcho360 2013-04-25 16:42:39

+0

$ price只是从行date1和date2的计算 – marina 2013-04-25 16:44:31

回答

2
"INSERT INTO `yourtable` ('price') VALUES ('".$price."')"; 

提出,在while循环中,所以

while ($row = mysql_fetch_array($sqlquery)) 
     { 

    $fd = strtotime($row['date1']); 
    $sd = strtotime($row['date2']); 


    $dates = floor(($sd - $fd)/86400); 

    $price = $dates * 25; 
"INSERT INTO `yourtable` ('price') VALUES ('".$price."')"; 
    } 

这意味着将有while循环的每次迭代的插入件,其中每个时间$price是不同的。

+1

您也可以将其更改为PDO/mysqli,这意味着您可以将其转换为使用绑定参数,这将处理插入更有效。 – andrewsi 2013-04-25 16:56:58

+0

@andrewsi是真的,但我基于这个在MySQL上,因为这是在OP的问题 – imulsion 2013-04-26 12:30:05

1

要插入一次,你可以做这样的事情的所有行:

INSERT INTO Other_Table (price) 
    SELECT 25 * (date2 - date1)/86400 
    FROM ... (table from $sqlquery) 
    WHERE ... (where clause from $sqlquery) 
+0

,实际上并没有告诉MySQL要插入什么值 – imulsion 2013-04-25 16:54:07

+0

@imulsion - 不会声明插入一个新行并设置价格'到查询返回的每一行的计算值?我使用类似的查询进行了测试 - 不是上面的确切的查询 - 所以我可能会对它进行调整。我有没有留下什么东西? – 2013-04-25 16:59:23

+0

恩,我以为INSERT语句需要一个VALUES参数来告诉mysql要插入什么。这可能是我>。< – imulsion 2013-04-26 12:29:17