2010-06-10 23 views
0

我想循环更新语句,但它只循环一次。我想做一个SQL更新循环语句,通过使用做 - 而在PHP

这里是我使用的代码:

do { 
    mysql_select_db($database_ll, $ll); 
    $query_query= "update table set ex='$71[1]' where field='val'"; 
    $query = mysql_query($query_query, $ll) or die(mysql_error()); 
    $row_domain_all = mysql_fetch_assoc($query); 
} while ($row_query = mysql_fetch_assoc($query)); 

感谢 让

+0

什么是你的问题? – 2010-06-10 08:54:55

+0

也许你可以解释你想要做什么......? – deceze 2010-06-10 08:54:55

+1

该代码做什么?你想要它做什么?你的问题是什么? – 2010-06-10 08:54:59

回答

0

问题是你reattribute你的循环内的值,以$查询。尝试

do { 
    mysql_select_db($database_ll, $ll); 
    $query_query= "update table set ex='$71[1]' where field='val'"; 
    $query2 = mysql_query($query_query, $ll) or die(mysql_error()); 
    $row_domain_all = mysql_fetch_assoc($query2); 
} while ($row_query = mysql_fetch_assoc($query)); 
+0

,并在UPDATE查询上使用mysql_fetch_assoc,该查询不返回任何行。 – softcr 2010-06-10 09:06:22

+0

实际上不是,他只在循环中分配一次'$ query',这不会造成任何问题。 – deceze 2010-06-10 09:09:08

5

嗯,这是唯一的一次循环将是UPDATE查询不返回,你可以用mysql_fetch_assoc提取任何行的原因。因此mysql_fetch_assoc返回false,这表示($row_query = mysql_fetch_assoc($query))false,这就是循环中止的原因。

除此之外,该代码是,很抱歉地说,非常残酷。它可能有助于告诉我们你想做什么,必须有更好的方法。

0

可能是你的mysql查询中有一些问题。

$ query_query =“update table set ex ='$ 71 [1]'where field ='val'”;

您的查询是错误的。

更新查询是“更新”表名“set ex ='$ 71 [1]'where field ='val'”;

您错过了表名。

或者如果您使用'table'作为您的表名称。然后改变它。

0

人,

我需要更换这个

$query = mysql_query($query_query, $ll) or die(mysql_error()); 
$row_domain_all = mysql_fetch_assoc($query); 

随着

$Result1 = mysql_query($query_query, $ll) or die(mysql_error()); 
+0

对不起,但这没有任何意义。如果这是解决方案,您必须忽略问题的一半。 – deceze 2010-06-10 21:44:54