2011-06-20 16 views
1

こんにちは、私はwebformを提出し、mysqlにデータを挿入しようとしています。私が持っている問題は、複数の入力ボックスを持つようにフィールドをセットアップしていることです。たとえば、「名前」の代わりに「名字」と「名字」があり、エンドユーザーがアドレスの特定の部分を見逃さないように、私のアドレスは多くのフィールドに分かれています。複数のフィールドをmysqlに挿入する方法

問題は私がこれらの複数のフィールドをmysqlに送信できないことです。私が単に "名前"フィールドを提出したいのであれば、私はできますが、ファーストネーム+ラストネームはできません。もっと明確にするために、私は "name"という名前の列を持っていて、 "firstname"と "lastname"を両方ともそこに格納したいと思います。住所と同じこと。ここで

私のhtmlコードは

<ul>    
    <li id=name"> 
     <label class="description" for="element_1">Name </label> 
     <span> 
      <input id="first" name= "first" class="element text" maxlength="255" size="8" value=""/> 
      <label>First</label> 
     </span> 
     <span> 
      <input id="last" name= "last" class="element text" maxlength="255" size="14" value=""/> 
      <label>Last</label> 
     </span> 
    </li> 
    <li id="phone"> 
     <label class="description" for="element_2">Phone </label> 
     <span> 
      <input id="parea" name="parea" class="element text" size="3" maxlength="3" value="" type="text" /> - 
      <label for="parea">(###)</label> 
     </span> 
     <span> 
      <input id="pfirst" name="pfirst" class="element text" size="3" maxlength="3" value="" type="text" /> - 
      <label for="pfirst">###</label> 
     </span> 
     <span> 
      <input id="plast" name="plast" class="element text" size="4" maxlength="4" value="" type="text" /> 
      <label for="plast">####</label> 
     </span> 
    </li> 
    <li id="email"> 
     <label class="description" for="element_3">Email </label> 
     <div> 
      <input id="email1" name="email1" class="element text medium" type="text" maxlength="255" value=""/> 
     </div> 
    </li> 
    <li id="address"> 
     <label class="description" for="element_4">Address </label> 
     <div> 
      <input id="street" name="street" class="element text large" value="" type="text"> 
      <label for="element_4_1">Street Address</label> 
     </div> 
     <div> 
      <input id="element_4_2" name="element_4_2" class="element text large" value="" type="text" /> 
      <label for="element_4_2">Address Line 2</label> 
     </div> 
     <div class="left"> 
      <input id="element_4_3" name="element_4_3" class="element text medium" value="" type="text" /> 
      <label for="element_4_3">City</label> 
     </div> 
     <div class="right"> 
      <input id="element_4_4" name="element_4_4" class="element text medium" value="" type="text" /> 
      <label for="element_4_4">State/Province/Region</label> 
     </div> 
     <div class="left"> 
      <input id="element_4_5" name="element_4_5" class="element text medium" maxlength="15" value="" type="text" /> 
      <label for="element_4_5">Postal/Zip Code</label> 
     </div> 
    </li> 
</ul> 

ですそして、私のPHP変数は、次のようなある:あなたがあなたのテーブルを再設計する必要がありますが、作るために、それは既存のスキーマと連携理想的

$name=$_POST['name']; 
$email=$_POST['email']; 
$address=$_POST['address']; 
$pod=$_POST['pod']; 
$sku=$_PST['sku']; 
$description=$_POST['description']; 
$problem=$_POST['problem']; 
$phone=$_POST['phone']; 

答えて

4
$name=$_POST['first'] ." ". $_POST['last']; 
$email=$_POST['email']; 
$address=$_POST['address']; 
$pod=$_POST['pod']; 
$sku=$_PST['sku']; 
$description=$_POST['description']; 
$problem=$_POST['problem']; 
$phone=$_POST['phone']; 
+0

そして、あなたのデータベースに渡す前にmysql_real_escape_stringの中でそれらをラップ行いますので、名前の欄に、あなたが{姓FIRSTNAME}のようなものを保存

http://php.net/manual/en/function.serialize.php

を参照してください。ユーザーの入力を信頼しないでください。リトルボビーテーブルが来るかもしれない.. – Bing

+0

良い点@改訂のためのBingのおかげです。私は個人的には検索などの容易さのためにこれらのデータ要素を私のDBで分けておくでしょう。いくつかの部分を連結したり、後でその行を1つ破る(解析する)。 – shaunhusain

+0

あまりにもそれをトリミング! mysql_real_escape_string(trim($ _ POST ['problem'])) – Drewdin

0

データをシリアライズおよびデシリアライズする必要があります。

$name[0] = $firstname; 
$name[1] = $lastname; 
$ser = serialize($name); \\--->put this in db