2011-12-05 62 views
-4

我正在使用oops在php中的數據庫中插入數組值。我在表單頁面上調用一個類。在數據庫中插入數組的值在php中

<?php 
$pid=$_POST['pid']; 
$ecode=$_POST['ecode']; {these are my form value) 
$rcode=$_POST['rcode']; 
$dk=$_POST['dk']; 
$qd=$_POST['qd']; 
$tp=$_POST['tp']; 
$vd=$_POST['vd']; 
$valArr=array($pid,$ecode,$rcode,$dk,$qd,$tp,$vd); 

if(isset($_POST['form_submit'])){ 
    $requester=new performance(); 
    $requester->addRow($valArr); 
} 
?> 

和一流的性能代碼

class performance extends DataAccess 
{ 
    { 
     $this->obj= new DataAccess; 

    } 
    function addRow($valArr) 
    { 
     foreach ($valArr as $key=>$value) 

      $sql= INSERT INTO employee_performance (id, empcode,review_emp_id, 
        subject_matter,quality_of_delivery, team_player,value_added) 
        VALUES $value 
    } 
    $sql=mysql_query($sql); 
} 
} 

其不能插入database.how所有記錄我做到這一點?

我想知道如何使用foreach將這些數據插入到mysql數據庫中。比我能指望

+3

夥計......嚴重嗎?你認爲我們可以幫助你提出一個問題「它的顯示錯誤,我該如何解決這個問題?」如何指定實際的錯誤? –

+0

由於粘貼錯誤導致引號缺失,或者這是您班級中的錯誤? – Pateman

+0

@Pateman BugS,BUGS。有...其中很多 – OptimusCrime

回答

-1

寫這樣

function addRow($valArr) 
{ 
$values = implode(',',array_values($valArr)); 
$sql= "INSERT INTO employee_performance (id, empcode, review_emp_id, subject_matter, quality_of_delivery, team_player,value_added) VALUES($values)"; 
$sql=mysql_query($sql); 
} 
+0

我認爲你需要引用元素。在第一篇文章中,查詢中也缺少引號。 – OptimusCrime

+0

其工作,謝謝你的幫助 – ravinath

+0

我可以把coloms的名字也放在數組中 – ravinath

0

您的代碼有更多的錯誤。然而,這是一個條紋下來,難看/快(希望工作)編輯:

<?php 
$pid = $_POST['pid']; 
$ecode = $_POST['ecode']; 
$rcode = $_POST['rcode']; 
$dk = $_POST['dk']; 
$qd = $_POST['qd']; 
$tp = $_POST['tp']; 
$vd = $_POST['vd']; 

if(isset($_POST['form_submit'])) 
{ 
    $query = "INSERT INTO employee_performance (id, empcode,review_emp_id,subject_matter,quality_of_delivery,team_player,value_added) VALUES ('$pid', '$ecode', '$rcode', '$dk', '$qd', '$tp', '$vd')"; 
    $sql = mysql_query($query); 
} 
?> 

你爲什麼要插入它像那​​樣的陣列?它沒有任何意義?而你的$sql既是查詢本身的查詢和執行。

+0

所有項目已經在oops中,所以我實現了一個短的部分,我不熟悉更多woth oops,但我不能直接做這個 – ravinath

0

親愛的你使用簡單的一維數組,不需要使用foreach循環,因爲它會一次選擇一個值,並且只有一個值將被插入到數據庫中,然後不能將值插入同一排。 只是這樣做...

if(isset($_POST['form_submit'])){ 
     $requester=new performance(); 
     $requester->addRow($_POST); // $_POST is itself an associative array 
    } 


class performance extends DataAccess 
    { 
    { 
    $this->obj= new DataAccess; 

     } 
    function addRow($valArr) 
{ 
      extract($valArr); 

      $sql= INSERT INTO employee_performance (id, empcode,review_emp_id,      subject_matter,quality_of_delivery, team_player,value_added) 
     VALUES('$pid' , '$ecode'...'$vd'); 
    $sql=mysql_query($sql); 
} 
}