0

以下のようなものを使用して、テーブルの最初の列を新しい値で更新しようとしています..問題は、mysql で $userTemp 変数が増加していないことですが、 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 だから代わりに編集してください:

これは問題なく動作しますが、正確には配列アクセスではないため、私が探していたものではありませんが、その値でフィールドを明示的に参照しています:(

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

次に update ...set を変更します

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');
    }

私はまだ配列アクセスによってこれを行うことを好みます。つまり、update ... set mysql クエリの要素番号で最初の列の最初のフィールドにアクセスします。そのため、それに関する助けは大歓迎です。

4

0 に答える 0