0

25のグループでデータベースのフィールドに値を割り当てようとしています。たとえば、最初の25には値1が割り当てられ、次の25には値2が割り当てられます。これを試みましたが、結局は全体をループするだけで、全員に同じ番号が与えられます。

これが私がこれまでに持っているものです...

$i = 1;
    while(($count > 0) && ($i < 10)){
        $sql = "UPDATE tbl_studentModules SET groupID = $i WHERE groupID = '' LIMIT 25";
        $result = mysql_query($sql) or die(mysql_error());
        $count = mysql_num_rows($result);
        $i++;
    }

どんな助けでもありがたいことに受け取られます。

ありがとう

4

1 に答える 1

3
$sql = "UPDATE tbl_studentModules SET groupID = MOD(rowId, 25) WHERE groupID = ''";
$result = mysql_query($sql) or die(mysql_error());

上記のように使用してみてください。ユーザーに基づいて 0 ~ 24MODの範囲で 25 人のユーザーごとに割り当てられます(それが行の ID のフィールド名であると仮定します)。groupIDrowId

whileループは必要ありません。


また重要:

mysql_*新しいコードで関数を使用しないでください。それらはもはや維持されておらず、非推奨プロセスが開始されています。赤いボックスがか? 代わりに準備済みステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事は、どちらを決定するのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2012-11-28T22:23:53.963 に答える