php - 我的 ISSET 后期功能不起作用,无法确定原因

标签 php mysql arrays html

我一直在尝试让我的 isset post 函数正常工作,我认为没有任何打印错误,因为我现在已经检查了多次。有什么方法可以查明它为什么不起作用?我已经尝试通过对数据进行硬编码来测试我的 SQL 插入查询并且它有效。但是,当我在表单上键入输入后单击提交按钮时,页面会刷新并且数据不会进入数据库。搜索查询也不起作用。因此我推断问题可能出在我的 ISSET 函数上。如果需要,下面是代码:

<?php
    // Load the required files
    require_once 'dbconfig.php';

    //connect to database
    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD,DB_NAME);
    //echo $_SESSION['email'];
    $id = "";
    $empid = "";
    $name = "";
    $entitlement = "";
    $date = "";
    $clinic = "";
    $type = "";
    $days = "";
    $currency = "";
    $paid = "";
    $rate = "";
    $claimed = "";
    $balance = "";
    $hospleave = "";
    $medleave = "";
    $remark = "";

function getEmployee()
{   
    $employee = array();
    $employee[0] = $_POST['empid'];
    $employee[1] = $_POST['name'];
        return $employee;
}

// get values from the form
function getPosts(){
    $posts = array();
    //$post[0] = $_POST['empid'];
    //$post[1] = $_POST['name'];
    $posts[2] = $_POST['entitlement'];
    $posts[3] = $_POST['date'];
    $posts[4] = $_POST['clinic'];
    $posts[5] = $_POST['type'];
    $posts[6] = $_POST['days'];
    $posts[7] = $_POST['currency'];
    $posts[8] = $_POST['paid'];
    $posts[9] = $_POST['rate'];
    $posts[10] = $_POST['claimed'];
    $posts[11] = $_POST['balance'];
    $posts[12] = $_POST['hospleave'];
    $posts[13] = $_POST['medleave'];
    $posts[14] = $_POST['remark'];
    return $posts;
}

// Search (drop downlist.)

if(isset($_POST['search']))
{
    $employee = getEmployee();

    $search_Query = "SELECT * FROM employees WHERE emp_id = '$employee[0]'";

    $search_Result = mysqli_query($dbc, $search_Query);

    if($search_Result)
    {
        if(mysqli_num_rows($search_Result))
        {
            while($row = mysqli_fetch_array($search_Result))
            {               
                $empid=$row['emp_id'];
                $name=$row['emp_fullname'];
            }
        }else{
            echo 'No Data For This Id';
        }
    }else{
        echo 'Result Error';
    } 
}

// Insert
if(isset($_POST['insert']))
{
    $employee = getEmployee();
    $data = getPosts();

    //Upload Image(receipt)

    //insert statement
    /*$insert_Query= ("INSERT INTO `medical`
                (`emp_id`,`emp_fullname`, `med_entitlement`, `med_date` ,
                `med_clinic`, `med_days`, `med_paid`, `med_currency`, 
                `med_rate`, `med_claimed`, `med_balance`,`hosp_leave`, 
                `med_leave`,`med_remark`) 
        VALUES ('$employee[0]', '$employee[1]', '$data[2]', '$data[3]', 
                '$data[4]', '$data[5]', '$data[6]', '$data[7]', 
                '$data[8]', '$data[9]', '$data[10]', 
                '$data[11]'),'$data[12]'),'$data[13]'),'$data[14]')");
    */
    $insert_Query="INSERT INTO `medical` 
                (`med_id`, `emp_id`, `emp_fullname`, `med_entitlement`, 
                `med_date`, `med_clinic`, `med_days`, `med_paid`, 
                `med_currency`, `med_rate`, `med_claimed`, `med_balance`, 
                `med_remark`, `med_leave`, `hosp_leave`, `med_type`) 
        VALUES ('$employee[0]', '$employee[1]', '$data[2]', '$data[3]', 
                '$data[4]', '$data[5]', '$data[6]', '$data[7]', 
                '$data[8]', '$data[9]', '$data[10]', 
                '$data[11]'),'$data[12]'),'$data[13]'),'$data[14]')";  
    $insert_Result = mysqli_query($dbc, $insert_Query);



    if($insert_Result){
        if(mysqli_affected_rows($dbc) > 0){
            echo 'Data Inserted';
        }else{
            echo 'Data Not Inserted';
        }

        header("Location: displaymed.php");//redirect to claimDisplay.php page
        mysqli_close( $dbc ) ;      
    }
}
?>
<div id="form">
<form action="medfee.php" method="post" name="myForm" onsubmit="return(validate());" enctype="multipart/form-data" >
      <table border=0 width='82%'>

            <tr><br><br>
            <td>Employee ID</td><td>:</td><td><input type="text" name="empid" maxlength="5" pattern="[A-Z]{3,5}" required title="Min.3, Max. 5 Capitial Letters ONLY!" ><td><input type="submit" name="search" value="Find"></td></td>
            <td>Amount Paid</td><td>:</td><td><input type="text"  name="paid"></td>
            </tr>

            <tr>
            <td>Full Name</td><td>:</td><td><input type="text" name="name"></td>
            <td></td>
            <td>Exchange Rate</td><td>:</td><td><input type="text" name="rate"></td>
            </tr>

            <tr>
            <td>Entitlement</td><td>:</td><td><input type="text" name="entitlement"></td>
            <td></td>
            <td>Amount Claimed (SGD)</td><td>:</td><td><input type="text" name="claimed" >
            </tr>

            <tr>
            <td>Date</td><td>:</td><td><input type="text" name="date" placeholder="DD-MM-YYYY"></td>
            <td></td>
            <td>Amount Balance (SGD)</td><td>:</td><td><input type="text" name="balance"></td>
            </tr>

            <tr>
            <td>Hospital / Clinic</td><td>:</td><td><input type="text" name="clinic"></td>
            <td></td>
            <td>Balance Hospital Leave</td><td>:</td><td><input type="text" name="hospleave"></td>
            </tr>

            <tr>
            <td>Medical Type</td><td>:</td><td><select name="type">
                <option selected></option>
                <option value="Medical Leave">Medical Leave</option>
                <option value="Outpatient Leave">Outpatient Leave</option>
                <option value="Hospitalization Leave">Hospitalization Leave</option>

                </select></td>
            <td></td>
            <td>Balance Medical Leave</td><td>:</td><td><input type="text" name="medleave"></td>
            </tr>

            <tr>
            <td>Utilized (Days)</td><td>:</td><td><input type="text" name="days"></td>
            <td></td>
            <td>Remarks</td><td>:</td><td><input type="text" name="remark"  style="height:50px; rows="2" cols="25"></td>
            </tr>
            <tr>
            <td>SGD / RM</td><td>:</td><td><input type="text" name="currency"></td>
            <td></td>
            </tr>

            <tr>
            <td></td>
            <td></td><td></td><td></td><td></td>
            <td align="right"><input type="submit" name="insert" value="Add"></td>
            </tr>   

            <tr>
            <td><br><br><br></td>
            <td></td>
            </tr>
        </table>
    </form>
</div>

最佳答案

这是您的 $insert_Query 中的拼写错误...

改变:

),'$data[12]'),'$data[13]')

收件人:

,'$data[12]','$data[13]'

这样你的查询看起来像这样:

$insert_Query="INSERT INTO `medical` 
                (`med_id`, `emp_id`, `emp_fullname`, `med_entitlement`, 
                `med_date`, `med_clinic`, `med_days`, `med_paid`, 
                `med_currency`, `med_rate`, `med_claimed`, `med_balance`, 
                `med_remark`, `med_leave`, `hosp_leave`, `med_type`) 
        VALUES ('$employee[0]', '$employee[1]', '$data[2]', '$data[3]', 
                '$data[4]', '$data[5]', '$data[6]', '$data[7]', 
                '$data[8]', '$data[9]', '$data[10]', 
                '$data[11]','$data[12]','$data[13]','$data[14]')";

更好的是,出于安全目的,您应该使用 mysqli 准备好的语句。 尽可能多地研究这个话题,直到你对它感到满意为止。 从这个例子开始:https://stackoverflow.com/a/2553892/2943403然后检查 php 手册和互联网上的其他片段。这段时间花得值。

关于php - 我的 ISSET 后期功能不起作用,无法确定原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45851252/

相关文章:

php - mysql插入查询不起作用

mysql - SQL 语法错误 : Multiple Join Error

java - Red Hat Linux 上的 Mysql、JDBC 连接问题

javascript - 在对象 javascript 中添加项目/值

php - 需要帮助使 sql 数据可用于数学函数 php

php - 在 MySQL 查询中使用函数

c - 为什么对于任何 C 数组,此表达式都包含 a[7] == 7[a]

PHP foreach 循环使用数组中的值填充下拉列表

php - 如何使用 getAllChecked() 获取 dhtmlx 中检查的项目的文本

mysql - 创建新的 UNIQUE 索引时,键 '1-11' 的错误重复条目 'user_image'