0

各user.IDのメッセージテーブルにテーブルエントリを挿入するにはどうすればよいですか。users.MM_Division=division.divisionid

messages.messagesuseridにユーザーIDの値を挿入したい

whileループが必要だと思いますが、挿入クエリを処理するときにどのように実装するかわかりません。

現在、messageuserid値がNULLとして投稿されたメッセージテーブルに挿入されるメッセージ行は1つだけです。

ありがとう

これが私のコードです:

session_start();

$colname_division = "-1";
if ((isset($_GET['divisionid'])) && ($_GET['divisionid'] != "")) {
      $colname_division = $_GET['divisionid'];

mysql_select_db($database_connect, $connect);
$query_users = sprintf("SELECT users.*, division.* FROM users INNER JOIN division ON division.divisionid = users.MM_Division WHERE divisionid = %s", GetSQLValueString($colname_users, "int"));
$users = mysql_query($query_users, $connect) or die(mysql_error());
$row_users = mysql_fetch_assoc($users);
$totalRows_users = mysql_num_rows($users);


// MESSAGE USERS DIVISION ARCHIVED
    $messageinsertSQL = sprintf("INSERT INTO messages (message, messageuserid) VALUES ('The division " . $row_division['division'] . " has been archived by " . $_SESSION['MM_Username'] . " please select a new division', '" . $row_users['ID'] . "')",GetSQLValueString($_GET['divisionid'], "int")); 
    mysql_select_db($database_connect, $connect);
    $Result4 = mysql_query($messageinsertSQL, $connect) or die(mysql_error());


// REDIRECT
    $updateGoTo = "../divisions.php";
        if (isset($_SERVER['QUERY_STRING'])) {
            $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
            $updateGoTo .= $_SERVER['QUERY_STRING'];
        }
    header(sprintf("Location: %s", $updateGoTo));

    mysql_free_result($division);
    exit;
}
4

1 に答える 1

0

message users division archivedその部分を次のようにラップします。

while (($row_users = mysql_fetch_assoc($users)) !== false) {
 $messageInsert = ...
 [...]
}

次に、以前に使用したものを削除する必要があります$row_users = mysql_fetch_assoc($users)

ところで、(ユーザーと部門からの)同じ名前が並んでいる場合に一部の列が上書きされないかどうかはわかりません$query_users =$colname_usersその上、その行のGetSQLValueString()関数のパラメーターが間違っています(そうではありませ$colname_divisionんか?それとも別の場所で宣言しますか?)。

于 2012-05-21T13:24:07.200 に答える