将输入复制到其他表PHP / MYSQL

时间:2017-01-10 21:10:56

标签: php mysql

我现在有一个问题就是将变量发送到表我有3个名为prereg的表,asdoc,asdocp,我正在为患者分配一个医生,其中患者表是prereg而另外两个表是医生表,问题是:prereg表中的$ fname发送到2表,即asdoc,asdocp和。

我想要做的是$ 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--------

我知道我的代码是错误的这个脚本请告诉我,如果如何解决这个谢谢你们。这发生在我的桌子上:

1 个答案:

答案 0 :(得分:0)

您的代码逻辑不能完成您在问题中所说的内容。它应该是:

if (num_rows < 5) {
    insert new row
} elseif (num_rows == 5) {
    set status to full
}

所以PHP应该是:

$fnamechkkk  = mysql_query("SELECT COUNT(*) AS count FROM asdoc WHERE docname = '$docname'");
$row = mysql_fetch_assoc($fnamechkkk);
if ($row['count'] < 5) {
    $query = "INSERT into asdoc (docname, afname) VALUES ('$docname','$fname')";
    $result = mysql_query($query) or trigger_error(mysql_error().". Query: ".$query);
} elseif ($row['count'] == 5) {
    $query = "UPDATE asdoc SET mstat='Full' Where docname='$docname' AND mstat='available'";
    $result = mysql_query($query) or trigger_error(mysql_error().". Query: ".$query);
}

每次想要计算时,您都不需要重复SELECT查询。如果您关心的只是匹配数量,那么执行SELECT COUNT(*)查询而不是SELECT *后跟mysql_num_rows()通常会更好。