私はprereg、asdoc、asdocpという3つのテーブルを持つテーブルに変数を送信する際に問題があります。患者テーブルがpreregである患者に医師を割り当てます他の2つのテーブルは医師のテーブルです。問題は次のとおりです:preregテーブルからの$ fnameがasdoc、asdocp、および2の両方のテーブルに送信されます。他のテーブルへの入力を複製する
私がしたいのは、$ fnameの値が1つのテーブルだけに送信され、医者の名前が5で重複すると、mstat/pstatテーブル名がいっぱいになります。
$fnamechk = @mysql_query("SELECT * FROM prereg WHERE fname = '$fname'");
if(mysql_num_rows($fnamechk) == 0) {
$query = "INSERT into prereg (fname, lname, mname)
VALUES ('$fname','$lname','$mname')";
$result = mysql_query($query) or trigger_error(mysql_error().". Query: ".$query);
echo "<strong>";
echo "<script>alert('Successfully added to in patient');document.location='patient.php'</script>";
echo '</script>';
// DOOOOOOOOOOOOOOCTORSSSSS --------------------
//MEDICAL DOCTOR
$fnamechkkk = @mysql_query("SELECT * FROM asdoc WHERE docname = '$docname'");
if(mysql_num_rows($fnamechkkk) == 4) {
mysql_query("UPDATE asdoc SET mstat='Full' Where docname='$docname' AND mstat='available'");
}else
$fnamechkk = @mysql_query("SELECT * FROM asdoc WHERE docname = '$docname'");
if(mysql_num_rows($fnamechkk) <= 5) {
$query = "INSERT into asdoc (docname, afname)
VALUES ('$docname','$fname')";
$result = mysql_query($query) or trigger_error(mysql_error().". Query: ".$query);
}
// MEDICAL DOCTOR END--------
//PEDRIATIC DOCTOR
$fnamechkkk = @mysql_query("SELECT * FROM asdocp WHERE pdoc = '$pdoc'");
if(mysql_num_rows($fnamechkkk) == 4) {
mysql_query("UPDATE asdocp SET pstat='Full' Where pdoc='$pdoc' AND pstat='available'");
}else
$fnamechkk = @mysql_query("SELECT * FROM asdocp WHERE pdoc = '$pdoc'");
if(mysql_num_rows($fnamechkk) <= 5) {
$query = "INSERT into asdocp (pdoc, pfname)
VALUES ('$pdoc','$fname')";
$result = mysql_query($query) or trigger_error(mysql_error().". Query: ".$query);
}
// PEDRIATIC DOCTOR END--------
私のコードはこのスクリプトでは間違っています。どうかこの問題を解決するにはどうすればいいですか?ありがとうございました。これは私のテーブルに何が起こるか:
**警告**:PHPを学んでいるだけの方は、[mysql_query](http://php.net/manual/en/function.mysql-query.php)インターフェイスを使用しないでください。それはPHP 7で削除されたのでとてもひどいと危険です。[PDOのようなものは学ぶのが難しくない](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /)と[PHP The Right Way](http://www.phptherightway.com/)のようなガイドがベストプラクティスを説明しています。あなたのユーザーデータは**適切にエスケープされていない**(http://bobby-tables.com/php.html)であり、[SQLインジェクションのバグ](http://bobby-tables.com/)があります。悪用される。 – tadman
**警告**: '@ '演算子でメソッドを呼び出すときにエラーを抑制しないでください。何かが間違っていたら、それについて知りたいし、是正措置を講じるか、ユーザーに役立つメッセージを表示するか、問題を記録するか、それ以上のことをする必要があります。また、深刻な問題を指摘しようとしているエラーを無視すると、このようなデバッグの問題がさらに複雑になります。 – tadman
インデントも完全に制御不能です。あなたはこのものを整理しておくか、ここで何が起こっているのかを決して知らせることはできません。 – tadman