0

我正在尝试使用新值更新表中的第一列,使用类似于下面的内容。问题是 $userTemp 变量在 mysql 中没有递增,但它似乎贯穿了php for 循环中的数组(如预期的那样)。但是在 mysql_query 这似乎没有反映?我不太明白为什么当我在 mysql_query 之前回显 $userTemp 时,它表明它正在正确递增。查询通过函数 queryMysqlPopulate($userTemp,$row[0]); 但参数似乎没有传递给函数。但是,在为 $userTemp 运行另一个回显的函数调用后,显示该值实际上已增加。喜欢认真吗?!请有人能告诉我为什么吗?会话控制与此有关吗?

任何帮助是极大的赞赏!

PS。这不是完整的程序,我刚刚剪掉了适用的部分,以免占用你太多的时间(希望有帮助)。

$userlogins = array('c001','d001','dj001','ed001',
                'k001','nr001','ol001','pt001',
                'py001','rx001','s005');

if (tableExists('mytable'))
{

    $tempQuery = queryMysql("SELECT username FROM students");
    $numRows = mysql_num_rows($tempQuery);
    for ($j = 0 ; $j < $numRows ; ++$j)
        {
            $userTemp = "$userlogins[$j]";
            echo $userTemp;
            $row = mysql_fetch_row($tempQuery);
            queryMysqlPopulate($userTemp,$row[0]);
            echo $userTemp;
        }
}

和功能

function queryMysqlPopulate($tempLogin, $tempRow){

$result = mysql_query("UPDATE mytable SET username='$tempLogin' WHERE username='$tempRow'") or die(mysql_error());
return $result;}

我无法回答我自己的问题,因为我是一个新手:P 所以编辑 insteaD:

没问题,这很好用,虽然它不完全是我想要的,因为它不完全是数组访问,而是通过它的值明确引用一个字段:(

for($i = 0; $i < $loops; ++$i)
    {
        queryMysql("INSERT INTO $name VALUES" .
        "('hi$i', 'there', 'all', 'you', 'cats')");
    }

然后更改更新...设置为

if (tableExists('mytable'))
{

    $tempQuery = queryMysql("SELECT username FROM mytable");
    $numRows = mysql_num_rows($tempQuery);
    for ($j = 0 ; $j < $numRows ; ++$j)
        {
            $userTemp = "$userlogins[$j]";
            echo $userTemp;
            $row = mysql_fetch_row($tempQuery);
            queryMysqlPopulate($userTemp,'hi'.$j);
            echo $userTemp;
            //echo $row[0];

        }
    //echo tableExists('none');
    }

我仍然更喜欢通过数组访问来执行此操作,即通过更新中的元素编号访问第一列的第一个字段... set mysql 查询。因此,非常感谢您提供任何帮助。

4

0 回答 0