循环并更新PHP中sql表的每一行

时间:2014-03-14 15:51:51

标签: php mysql sql for-loop

我试图快速做一些事情'脚本只是将一些虚拟数据添加到我添加到我拥有的数据库表的新列中,该表有1000个条目,因此手动执行它并不是一个真正的选项。

我现在拥有的东西:

<?php

$conn = mysql_connect('localhost', 'root', ''); mysql_select_db('cdb', $conn);                      

$string = "4050605040302030405060708070304050403040506070605040302010203040506070655545352515756535243515353545"; //50 values
$mpgsplit = str_split($string, 2);

for ($i=0; $i<=20; $i++)
{
    for ($x=0; $x<=50; $x++)
    {$r = mysql_query  ("UPDATE cars SET mpg = '".$mpgsplit[$x]."'", $conn);}
}
?>

使用更新的问题不起作用,因为它只是在每次循环时用每个数字替换该列的每一行的值。对我而言,阵列中的数字达到了48,超时了。

然后使用insert只生成所有新行。

所以我需要一种方法来循环每一行并更新它。

最近我一直在循环并处理一个表的单行是这样的:

$result = mysql_query("SELECT * FROM imported_orders");
$orderNo = $_POST['orderNo'];
$row = mysql_fetch_array($result, MYSQL_ASSOC);
if($orderNo>0&&$orderNo<=count($row))
{
    $file = fopen('Order.txt', 'w');
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    {

但那只是将行作为变量,不确定我是否可以将其转换为我需要的。

Theres可能是一个简单的功能,但是我已经尝试过搜索但无法找到它。 Theres也可能是一种更容易实现我整体努力的方式,所以这将是受欢迎的。

所有人都非常感谢。 - 汤姆

1 个答案:

答案 0 :(得分:0)

直接在mysql命令行或php脚本中发出此sql语句。

SET @r := 0;
UPDATE  cars
SET     mpg = (@r := @r + 1)
ORDER BY
        RAND()

此sql语句将从0分配数字,直到数据库的总行数为随机行。我想这可能会有所帮助