あなたが示すコードはSERVER側で動作しているので:
<?php $abc = "<script>document.write(jvalue)</script>"?>
$abc
に設定"<script>document.write(jvalue)</script>"
そこに書いた JavaScript は、クライアント側であるブラウザで動作します。それらを混ぜないでください...
何が起こっているのかを明確にするためにOK:
このテキストはサーバーの php ファイルにあるため、呼び出されると次のようになります。
Line Action on Server
<form name="form1"/> //->sent to client
<input type="text" name="code1" value="D50"//->sent to client
<input type="text" name="code2" value="" //->sent to client
<form/> //->sent to client
<script type="text/javascript"> //->sent to client
var jvalue = form1.code1.value; //->sent to client(will run on client)
<?php //->php takes control on server
$abc = "<script>document.write(jvalue)</script>"; //php runs this on server
//php sets $abc to "<script>document.write(jvalue)</script>" on server...
//php does not process javascript, php sees it as text...
?> //->ends php control
</script> //->sent to client
<?PHP //->php takes control on server again
$con = mysql_connect("localhost","abc_one","pass"); // php runs this on server
mysql_select_db("abc_one", $con); // php runs this on server
echo $abc; // php echoes $abc
を含む行を意味します
<script>document.write(jvalue)</script>
クライアントに送信されます。
それはあなたのクライアント文書に書かれています...
サーバーではなく、クライアント コンピューターで評価されます。
そして、それはまだではなく、近い将来に起こるでしょう....
ブラウザに D50 が表示されるのはなぜですか? 未来を見てみましょう:
では、CLIENT (ブラウザ) が JavaScript を解析するとどうなるでしょうか?
ブラウザが実行されます
var jvalue = form1.code1.value;
行してjvalueをD50に設定し、もちろんブラウザが遭遇したとき
<script>document.write(jvalue)</script>
それを実行し、D50であるクライアントの jvalue の値を表示します。
これはすべて、サーバーではなくクライアントコンピューターで発生します。
したがって、これは近い将来、まだではありません....
phpファイルに戻ります
//$c = 'D50'; // lets ignore this
$c = $abc; // php runs this on server.
// guess what now $c is '<script>document.write(jvalue)</script>'
// then php tries to run this:
$result2 = mysql_query("SELECT * FROM tblmycode where code='$c';");
今、あなたのクエリは本当に興味深いものになりました:
SELECT * FROM tblmycode where code='<script>document.write(jvalue)</script>';
何が起こっているのか今理解していただければ幸いです...
PS: mysql インターフェースは非推奨です。mysqli または PDO を使用してください...