-1

データベースには、すでにこれが含まれています:

id | username  | password
=========================
3  |   John    |  happy

同じユーザーが、ID が 3 のアカウントを PHP セッションに登録します。IDも3である別の行をデータベースに保存したいと思います。

出力は次のようになります。

id | username  | password
=========================
3  |   John    |  happy
3  |   Emily   |   sad

これまでのところ、私はこれを得ました:

abc.php

$result = mysql_query("SELECT id FROM account WHERE username='".$username."' LIMIT 1") or die(mysql_error);

while ($row = mysql_fetch_assoc($result)) 
{
    $_SESSION['id'] = $row['id'] ;
}

<input type="hidden" name="custom" value="<?php echo $_SESSION['id'];?>">

cba.php

$id = $_POST['custom'];

mysql_query("INSERT INTO user (id, username, password) VALUES('".$id."', '".$username."', '".$password."')") or die(mysql_error());

ID が 3 のセッションで試し、データベースに挿入しようとしましたが、何も挿入されませんでした。

4

3 に答える 3

0

なぜこれをやりたいのか非常に興味があります。誰でも、次のようなことを試すことができます:

$sql = "INSERT INTO user (id, username, password)
SELECT MAX(id), '" . $username . "', '" . $password . "' FROM user";

また、パスワードをプレーンテキストで保存していないことを願っています。

于 2013-03-16T18:26:48.797 に答える
0

あなたがやろうとしているのは、同じ「2つの一意の」値を持つことです。それはできません。それ以外の場合、値は一意ではなくなります。

質問に答えるには、値を保存するフィールドが一意性を強制するフィールドではない場合、単純な挿入でそれを行う必要があります。データベースから値をフェッチして複製を作成する場合を除きます。あなたが望むものを理解するのは難しいです。しかし、すでにフィールドにあることがわかっている値を挿入しようとしているだけです。一意のフィールドまたはプライマリ フィールドでない場合に機能します。

于 2013-03-16T18:34:26.880 に答える
0

更新クエリが必要だと思います。ID が既に存在するため (セッションに ID があるため、ユーザーは登録されています)、既存のユーザーの情報を新しい詳細で更新する必要があります。

于 2013-03-17T13:52:14.293 に答える