0

私は次のクエリを作成しました

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO selection (student_id, id_project, level_of_want) 
VALUES ((SELECT id FROM users WHERE Username = ".$_SESSION['MM_Username']." ), %s, %s)",
GetSQLValueString($_POST['Project_id'], "int"),
GetSQLValueString($_POST['Want'], "text"));

mysql_select_db($database_projectsite, $projectsite);
$Result1 = mysql_query($insertSQL, $projectsite) or die(mysql_error());
}

student_idは、テーブルで比較されるセッション情報から取得されます。

id_projectは、現在のIDを含む必要がある非表示フィールドから取得され、level_of_wantは2つの送信ボタンから取得されます。1つを選択すると、その値がデータベースに適用されます。以下はそれがフォームでどのように見えるかです。

<input type="submit" name="Want[]" id="Want_0" value="Really Want" />
      <input type="submit" name="Want[]" id="Want_1" value="Partially Want" />
    </p>
    <p>
      <input name="Project_id" type="hidden" id="Project_id" value="<?php echo $row_Test['Project_id']; ?>" />
    </p>

ただし、これを実行すると、データベースに情報が適用されず、ボタンが選択されたときにエラーメッセージが表示されません。誰かが何が悪いのかについての手がかりを持っていますか?

4

2 に答える 2

2

「SELECT id」が空の結果セットを返しているためだと思います

以下を試してください:

SELECT id FROM users WHERE Username = '".$_SESSION['MM_Username']."'

二重引用符を囲む余分な一重引用符に注意してください

于 2012-05-24T18:53:14.127 に答える
0

ネイサン

送信入力で見たのは配列です

<input type="submit" name="Want[]" id="Want_0" value="Really Want" />
<input type="submit" name="Want[]" id="Want_1" value="Partially Want" />

価値を得るには

GetSQLValueString($_POST['Want'][0], "text"));

トムズ

于 2012-05-24T18:58:46.123 に答える