0

word(id,word,meaning) と userword(id,wordid,userid) の 2 つのテーブルがあり、どちらも id は自動インクリメントです。フォームでは、ユーザーから単語と意味を取得し、この単語をテーブルに挿入したいと考えています。単語への挿入はうまくいきますが、ユーザーワードへの挿入では、単語からワード ID を取得してからユーザーワードに挿入する必要がありますが、ここでは機能しません。私のフォームは次のとおりです。

 <form action="InsertWord.php" method="post">
                                <input name="word" id="word" type="text" maxlength="255" />
                                <label for="user">:word</label></br></br>
                                <input name="meaning" id="mean" type="text" maxlength="255" />
                                <label for="pass">:meaning</label></br></br>
                                <input type="submit" value="insert" /></br></br>
 </form> 

および InsertWord.php:

<?php 
  session_start(); 
  $con = mysql_connect("localhost", "root", "")
  or die(mysql_error());   
  if (!$con) { 
    die('Could not connect to MySQL: ' . mysql_error()); 
   } 
  mysql_select_db("project", $con)
  or die(mysql_error()); 
  if(isset($_POST["word"]) && isset($_POST["meaning"])) 
    { 
    $word = $_POST["word"];
    $meaning = $_POST['meaning'];
    $user= $_SESSION['userid'];
    mysql_query("INSERT INTO words (word,meaning) values ('".$word."','".$meaning."')") or die(mysql_error()); 
    $qwordid = mysql_query("SELECT id FROM words WHERE word='$word'") or die(mysql_error()); 
    $fwordid = mysql_fetch_array($qwordid); 
    $wordid= $fwordid['id'];    
    mysql_query("INSERT INTO userword (user_id,word_id) values ('".$user."','".$wordid."')") or die(mysql_error()); 

   //HEADER('LOCATION: InsertIntoUserword.php');
} 
 else 
    die('wrong!'); 

  ?>

単語に挿入した後、データベースが更新されないため、ユーザーワードでは機能しません。どうすればよいですか?

4

2 に答える 2

0

使用できますmysql_insert_id()が、mysqli または PDO 拡張機能に変更することをお勧めします。mysql 拡張機能は非推奨になり、将来削除されるためです。これはhttp://www.php.net/manual/en/function.mysql-insert-で確認できます。 id.php

于 2013-10-25T17:37:05.157 に答える