在oop中打印数据库中数据的消息

时间:2011-12-09 08:12:03

标签: php mysql oop

我在预先制作的项目中使用oop php在mysql数据库中插入表单数据。所有工作都是正确的,但提交后任何成功和失败的消息都没有显示。 我的表单示例代码是:

performance.php->

   <h1>Employee Review Form</h1>
 <form name="product"  action="" method="post" id="customForm">
     <table>
          <tr>
         <td>Review Employee Id</td>
         <td><input type="text" name="rcode" id="rcode"  class="genInputBox" /></td>
     </tr>
         <tr>
             <td>Domain Knowledge(Subject Matter)</td>
             <td><select name="dk" id="dk">
                     <option value="">Plz Select Ratting </option>
                     <option value="5">5</option>
                     <option value="4">4</option>
                     <option value="3">3</option>
                     <option value="2">2</option>
                     <option value="1">1</option>
                 </select></td>
         </tr>and more...............
          <input type="submit" value="register" id="submit" name="form_submit"/>
                    </td></tr>
                        </table>
                    </form>

并表单提交过程

     <?php

      if(isset($_POST) && isset ($_POST["form_submit"])){
     $valArr=array("review_emp_id"=>$_POST['rcode'],"subject_matter"=>$_POST['dk']);
    $per_obj = new Performance();
    $per_obj->addPreformance($valArr, "employee_performance");


    }
     ?>

我的班级表演页面是:

             <?php 
   require_once("admin/includes/class_common_lib.php");
    require_once("class.userinfo.inc.php");

    class Performance extends DataAccess{

var $db_obj = null;
public function  __construct() {     //for database connectivity
    $this->db_obj = new DataAccess();
}

public function  addPreformance($key_values = array(), $table = null) {
    $this->db_obj->table_name = $table;
      $this->db_obj->addRecord($key_values);


   }
  }

   ?>

并且在类公共lib中添加记录功能代码是:

                    // Function for Add Record
    function addRecord($key_values)
    {

        $cols="";
        $vals="";
        foreach($key_values as $key=>$value)
        {
            if ($key!="submit" and $key!="PHPSESSID" and $key!="image_name" and $key!="submit_button" and $key!="ext" and $key!="ext2" and $key!="img_name" and $key!="mode" and $value!="" and $key!="gpl" and $key!="ip1" and $key!="ip2" and $key!="ip3" and $key!="ip4"){
                $cols .= "`".$key."`,";
                is_string($value)? $vals .= "'".addslashes($value)."'," : $vals .= "'".$value."',";

            }
        }

        $cols = substr($cols, 0, -1);
        $vals = substr($vals, 0, -1);

        $insert_qry="insert into ". $this->table_name ."(". $cols .") values(". $vals .")";

        $r=mysql_query($insert_qry);
        $this->msg = (!$r) ? f_add_msg : s_add_msg;
        return $r;
    }

这是一个非常大的项目,我完成了其他人先前完成的所有过程。

现在我想在提交表单后显示msz数据是否在数据库中提交(成功或失败)。

我在配置文件中找到了这些行

      define ("s_add_msg", "Record successfully added.");

     define ("f_add_msg", "Record not added. Please try again.&error=1");

我知道它冗长的代码,但我需要展示会发生什么。 所有功能都正常工作,但是 如何在performance.php页面中显示成功或失败的消息?请帮助

1 个答案:

答案 0 :(得分:1)

在编程中,在这种情况下使用Post/Redirect/Get模式很常见。如果没有看到整个代码库,快速解决此问题可能就是更改表单提交,如下所示:

<?php

  if(isset($_POST) && isset ($_POST["form_submit"])){
     $valArr=array("review_emp_id"=>$_POST['rcode'],"subject_matter"=>$_POST['dk']);
     $per_obj = new Performance();
     $per_obj->addPreformance($valArr, "employee_performance");

     $redirectLink = "someOtherUrl.php?m=" . urlencode( $per_obj->db_obj->msg );
     header( 'Location: ' . $redirectLink );
     die();
}
 ?>

这将重定向到您指定的新网址,您可以使用$ _GET [&#39; m&#39;]来检索状态消息。

最终,您希望在整个系统中以更清晰的方式处理此问题,但如果您只是尝试修复至少可以帮助您入门的遗留代码。