2011-06-20 2 views
1

Привет Я пытаюсь представить веб-форму и вставить данные в mysql. Проблема заключается в том, что у меня есть поля для ввода нескольких полей ввода. Например, вместо «имени» у меня есть «имя», «фамилия» и мой адрес разделен на множество полей, чтобы конечный пользователь не пропустил некоторые части своего адреса.как вставить несколько полей в mysql

Проблема в том, что я не могу отправить эти несколько полей в mysql. Если бы я хотел просто отправить поле «имя», я могу, но не имя + фамилию. Чтобы быть более ясным, у меня есть столбец с именем «имя», и я хочу, чтобы там было сохранено «первое имя» и «последнее имя». То же самое с адресом.

Вот мой 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 перед передачей их в свою базу данных. Никогда не доверяйте пользовательскому вводу. Маленькие Bobby Tables могут навеститься .. – Bing

+0

Хороший совет @Bing благодарит за поправку, также я лично буду хранить эти элементы данных в моей БД для удобства поиска и т. Д., Проще скомпоновать несколько частей или выполнить поиск по нескольким столбцам, чем сломать один вниз (разбор) позже по линии. – shaunhusain

+0

Обрежьте это тоже! mysql_real_escape_string (обрезка ($ _ POST ['problem'])) – Drewdin

0

В идеале вам нужно перепроектировать таблицу, но за то, что работа с существующей схемой , вам необходимо сериализовать и де-сериализовать данные. см

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

Таким образом, в столбце Имя хранить что-то вроде {Имя: Фамилия}

$name[0] = $firstname; 
$name[1] = $lastname; 
$ser = serialize($name); \\--->put this in db 
Смежные вопросы