• ベストアンサー

MySQLでGETで2件同じものが登録されてしまいます

PHP、MySQLとも初心者で、お世話になっています。 <form name="~" method="GET" action="~.php"> 入力1<input type="text" name="na1"><br> 入力2<input type="text" name="na2"><br> <input type="submit" value="送信"> </form> で送信し、PHP側で $tem1=$_GET["na1"]; $tem2=$_GET["na2"]; mysql_select_db("~"); mysql_query("insert into tb1 values (\"$tem1\",\"$tem2\")"); とすると、結果的に同じデータが2件登録されてしまいます。 何が問題なのでしょうか。 教えていただけるとありがたいのですが。 どうか、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

2回insertのクエリーを発行しているんじゃないですか?としか・・ mysql_query()に至るまでの処理を見直されてみては? どんな情報かは分かりませんが、$_POSTの方がよいと思います。

kiyonisi
質問者

お礼

ありがとうございます。 単純なテキストを、単純に送っているだけなのですが、 POSTだと問題ないようです。 1回目は1つだけ送られて、戻ってから2回目のデータを送ると 1回目も2つ、2回目も2つと、重複してしまいます。 何か、前のデータが残っているようです。 ちなみにOSはVistaです。

その他の回答 (2)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.3

多分ソースに問題があるような気がします。 >戻ってから2回目のデータを送ると とはどのように戻るのかはわかりませんが、その際に余計な値をつけているように思えます。 ソースを開示していただければもう少し具体的な回答がつけられると思います。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

問題はないように見えます。 ・ソースは全文ですか? ・問題がある値と問題のない値がありますか?

kiyonisi
質問者

お礼

さっそく回答いただき、感謝しております。 全文ではないのですが、 <form name="~" method="GET" action="~.php"> で $tem1=$_GET["na1"]; $tem2=$_GET["na2"]; とすると二重に登録されてしまうのですが、 <form name="~" method="POST" action="~.php"> で $tem1=$_POST["na1"]; $tem2=$_POST["na2"]; とすると、問題ないようなのですが。 申し訳ありません、知識がないもので。教えていただけるとありがたいです。

関連するQ&A