首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for循环更新每个周期的不同记录

使用for循环更新每个周期的不同记录
EN

Stack Overflow用户
提问于 2012-07-20 07:10:51
回答 2查看 79关注 0票数 0

我编写了一个php代码,生成许多"secret_key“。代码如下

代码语言:javascript
复制
 <?php

    include("/home3/kintest2/public_html/include/config.local.php");
    $connect= mysql_connect ($DBHOST,$DBUSER,$DBPASSWORD);
    $select= mysql_select_db($DBNAME, $connect);



    $test2= "SELECT *  FROM `video` WHERE `type` LIKE 'private'";
    $results= mysql_query($test2, $connect);
    $num_rows = mysql_num_rows($results);


    for ($count=$num_rows; $count>=0; $count-- && $secret_key= uniqid().mt_rand(1,9) )
    {
    mysql_query("UPDATE video SET secret_key= '$secret_key' WHERE type='private'",$connect);
    echo "    count is  {$count}  key is  {$secret_key}</br>";

    }
    ?>

这个代码只有一个问题。所有满足查询条件的mysql记录都被赋予相同的密钥。但是我想给每一张唱片分配一个不同的键。mysql_query("UPDATE video SET secret_key= '$secret_key' WHERE type='private'",$connect);

这是回波输出

  • 计数是13键是
  • 计数是12键是50090128c89bb7
  • 计数是11键是50090128c91153
  • 计数是10键是50090128c986c4
  • 计数是9键是50090128c9f9b5
  • 计数是8键是50090128ca7387
  • ……

总共有13项记录。

EN

回答 2

Stack Overflow用户

发布于 2012-07-20 07:14:24

您的echo输出已经列出了不同的键,但是即使我编写的代码有点不同:

代码语言:javascript
复制
while( !is_null($row = mysql_fetch_assoc($results)) ) { 
  $secret_key=uniqid().mt_rand(1,9); /* (?) */ 
  $dbCmd = "UPDATE video SET secret_key = '$secret_key' WHERE id={$row['id']}";   
  msyql_query($dbCmd, $connect); 
} 

您的查询对每行进行更新,类型为=‘私有’(atm) .

票数 0
EN

Stack Overflow用户

发布于 2012-07-20 07:29:05

如果希望键仅应用于一行,则必须调整UPDATE语句以仅影响一行。因此,一种方法是获取一些标识行的唯一键,并为每个行发出一个单独的更新查询。另一种选择可能是使用SQL生成随机密钥服务器端。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11574551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档