2011-12-23 7 views
2

$_POST['wmeet']を自動INSERTに追加するにはどうしたらいいですか?別の更新を行うべきですか?私はすべて6つの$_POST['wmeet']値はINSERTとUPDATEの間で同様の構文を活用しようとする

if (is_array($_POST['add'])) 
      foreach ($_POST['add'] as $key => $value) 
      $_POST['add'][$key] = mysql_real_escape_string(stripslashes($value)); 

if (is_array($_POST['wmeet'])) 
      foreach ($_POST['wmeet'] as $key => $value) 
      $_POST['wmeet'][$key] = mysql_real_escape_string(stripslashes($value)); 

     function dbSet($fields, $source = array()) { 
      $set=''; 
      if (!source) $source = &$_POST; 
      foreach ($fields as $field) { 
       if (isset($source[$field])) { 
      $set.="`$field`='".mysql_real_escape_string($source[$field])."', "; 
       } 
      } 
      return substr($set, 0, -2); 
     } 

$fields = explode(" ", "m_user m_pass m_email m_date m_ip m_type m_country m_place"); 
$query_mem = "INSERT INTO social_members SET ".dbSet($fields, $_POST['add']); 

      mysql_query($query_mem); 
+1

は、あなただけの '$値=破を行うことはできません(」」、$ _ POST [『wmeet』]);' – Cyclonecode

+0

@KristerAnderssonその後、私がやるとアップデートを適用するか、それが私に追加することができますインサート? – acctman

答えて

1

一つの方法として、各値の間に単一のスペース「CE1のSF1のSM1」形式でm_wmeetに行きたいのは破を使用することです@KristerAnderssonがREPLACE INTOと組み合わせて述べた方法。あなたは、あなたの挿入物の一部であるプライマリキー、またはこれが機能するためのユニークなキーを持っている必要があります。 REPLACE INTOはINSERT INTOと同じコラム構文を共有しているので、それを使用してINSERTと一緒にUPDATESを得ることができます。 REPLACE INTOは古い行を削除し、新しい行を挿入するので、レコードキーが変更されることに注意してください。

1

はこのような何かを試してみてください:

if (is_array($_POST['add'])) 
    foreach ($_POST['add'] as $key => $value) 
     $_POST['add'][$key] = mysql_real_escape_string(stripslashes($value)); 

    if (is_array($_POST['wmeet'])) 
     $_POST['add']['m_wmeet'] = mysql_real_escape_string(stripslashes(implode(' ',$_POST['wmeet']))); 

    function dbSet($fields, $source = array()) { 
     $set=''; 
     if (!source) $source = &$_POST; 
     foreach ($fields as $field) { 
      if (isset($source[$field])) { 
     $set.="`$field`='".mysql_real_escape_string($source[$field])."', "; 
      } 
     } 
     return substr($set, 0, -2); 
    } 

$fields = explode(" ", "m_user m_pass m_email m_date m_ip m_type m_country m_place m_wmeet"); 
$query_mem = "INSERT INTO social_members SET ".dbSet($fields, $_POST['add']); 
mysql_query($query_mem); 
+0

私はあなたがこれと一緒に行くところを見ています。 – acctman

+0

@acctman - 誰か他の人はいませんでした=) – Cyclonecode

+0

私はこれを私の答えよりも好きです。 +1 – davidethell

0

これは私が1が働くだろうコメント/回答は...からまとめたものでしょうか?

if (is_array($_POST['wmeet'])) 
    foreach ($_POST['wmeet'] as $key => $value) 
    $_POST['wmeet'][$key] = mysql_real_escape_string(stripslashes($value)); 
    $wmeet = implode(" ",$_POST['wmeet']); 

またはそれは

$_POST['wmeet'][$key] = 
mysql_real_escape_string(stripslashes($value = implode(" ",$_POST['wmeet']))); 

、その後、挿入コードのようなものである必要はない...この作品のような何か?

$query_mem = "INSERT INTO social_members 
    SET ".dbSet($fields, $_POST['add']. ", m_wmeet=".$wmeet); 
関連する問題