php循环生成10个唯一代码,但只在mysql上保存最后一个

php循环生成10个唯一代码,但只在mysql上保存最后一个,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我曾多次尝试使用下面的代码将10个独特的php生成的代码保存到一列中,我只使用最后生成的代码更新了该列。 此代码有什么问题? //GNRT_id for($c=0;$c<10;$c++) { $d_gnrt_id = openssl_random_pseudo_bytes(20); $hex = bin2hex($d_gnrt_id); //add GNRT CDE to data $q ="UPDATE mstfa_data SET d_gnrt_id = '$he

我曾多次尝试使用下面的代码将10个独特的php生成的代码保存到一列中,我只使用最后生成的代码更新了该列。 此代码有什么问题?

//GNRT_id
for($c=0;$c<10;$c++)
        {
$d_gnrt_id = openssl_random_pseudo_bytes(20);
$hex   = bin2hex($d_gnrt_id);

//add GNRT CDE to data
$q ="UPDATE mstfa_data SET d_gnrt_id = '$hex' where x_id > 1 "; 
$res = mysql_query($q);
echo "Done No: ".$c." AND CODE IS: ".$hex." and SQL_ERR=: ".mysql_error()."<br />";
}
所选列中的MYSQL结果与此类似

 a185b07969d859912f4f0a18c25dea9db97c1dc2
 a185b07969d859912f4f0a18c25dea9db97c1dc2
 a185b07969d859912f4f0a18c25dea9db97c1dc2
 a185b07969d859912f4f0a18c25dea9db97c1dc2
 a185b07969d859912f4f0a18c25dea9db97c1dc2
 a185b07969d859912f4f0a18c25dea9db97c1dc2
 a185b07969d859912f4f0a18c25dea9db97c1dc2
 a185b07969d859912f4f0a18c25dea9db97c1dc2
 a185b07969d859912f4f0a18c25dea9db97c1dc2

我该怎么办?

MySql条件在逻辑上是错误的,它用(id>1)更新所有行,这意味着更新所有行*循环时间(10次),所以我将此代码修改为如下

$q = "select * from $tbl_1 where x_id >0";
$c_num = mysql_num_rows(mysql_query($q));



        for($c=1;$c<$c_num;$c++)
        {

        //GNRT_id
            $d_gnrt_id = openssl_random_pseudo_bytes(20);
            $hex   = bin2hex($d_gnrt_id);

            //add GNRT CDE to data
            $q ="UPDATE mstfa_data SET d_gnrt_id = '$hex' where x_id = $c ";    
            $res = mysql_query($q);
            echo "Done No: ".$c." AND CODE IS: ".$hex." and SQL_ERR=: ".mysql_error()."<br />"; 

        }
$q=“从$tbl\u 1中选择*其中x\u id>0”;
$c_num=mysql_num_行(mysql_查询($q));

对于($c=1;$c“php循环”-什么循环?为什么不只获取最后生成的代码?您正在更新所有行,而不是插入新行。@Barmar,意思是请解释更多?您创建一个代码,然后更新所有行。然后创建另一个代码并更新所有行。如果您使用第二个代码更新所有行,为什么它们仍然具有第一个代码?Pr令人难以置信的是,这是为了某种对古代编码实践的研究?
$q = "select * from $tbl_1 where x_id >0";
$c_num = mysql_num_rows(mysql_query($q));



        for($c=1;$c<$c_num;$c++)
        {

        //GNRT_id
            $d_gnrt_id = openssl_random_pseudo_bytes(20);
            $hex   = bin2hex($d_gnrt_id);

            //add GNRT CDE to data
            $q ="UPDATE mstfa_data SET d_gnrt_id = '$hex' where x_id = $c ";    
            $res = mysql_query($q);
            echo "Done No: ".$c." AND CODE IS: ".$hex." and SQL_ERR=: ".mysql_error()."<br />"; 

        }