2011-12-05 6 views
-4

私は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、バグ。 ...多くの人がいます – 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

配列にコロンズの名前を入れてもいいですか? – 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で作成されていますので、私は短い部分を実装しています。もっと使い慣れていませんが、これを直接行うことはできません – ravinath

0

あなたは単純な1次元配列を使用しているので、foreachループを使用する必要はありません。一度に1つの値を選択し、データベースには1つの値しか挿入されず、同じ行 これをちょうど...

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); 
} 
} 
関連する問題