2014-10-06 5 views
-1

Я пытаюсь вставить несколько входных значений в один столбец таблицы.Вставка нескольких входных значений в один столбец базы данных

Мой код выглядит следующим образом:

<?php $shot = $_POST['leadShot']; 

foreach ($shot as $shotall) { 
    $leadShot[] = implode(' - ', $shotall); 
} 

$name = mysql_real_escape_string($name); 

mysql_query("INSERT INTO leaderboards (leadName,leadDate,leadScore,leadShot) VALUES ('$name','$date','$score','$shot')")or die(mysql_error()); ?> 

А потом я следующий из кода:

<li class="field"><h2>Hole 1</h2><input class="input" name="leadShot[]" id="leadShot[]" type="text" value="" size="103" /></li> 
    <li class="field"><h2>Hole 2</h2><input class="input" name="leadShot[]" id="leadShot[]" type="text" value="" size="103" /></li> 
    <li class="field"><h2>Hole 3</h2><input class="input" name="leadShot[]" id="leadShot[]" type="text" value="" size="103" /></li> 
    <li class="field"><h2>Hole 4</h2><input class="input" name="leadShot[]" id="leadShot[]" type="text" value="" size="103" /></li> 
    <li class="field"><h2>Hole 5</h2><input class="input" name="leadShot[]" id="leadShot[]" type="text" value="" size="103" /></li> 
    <li class="field"><h2>Hole 6</h2><input class="input" name="leadShot[]" id="leadShot[]" type="text" value="" size="103" /></li> 
    <li class="field"><h2>Hole 7</h2><input class="input" name="leadShot[]" id="leadShot[]" type="text" value="" size="103" /></li> 
    <li class="field"><h2>Hole 8</h2><input class="input" name="leadShot[]" id="leadShot[]" type="text" value="" size="103" /></li> 
    <li class="field"><h2>Hole 9</h2><input class="input" name="leadShot[]" id="leadShot[]" type="text" value="" size="103" /></li> 

Я хочу быть в состоянии иметь отверстия 1-9 вставив в одну колонку?

+0

Какой тип SQL из leadShot? –

+0

Не ответ, но я предполагаю, что вы знакомы с [Первая нормальная форма] (https://en.wikipedia.org/wiki/First_normal_form)? – pjmorse

+0

Привет, SQL-тип leadShot - это текст? – user3585684

ответ

0

Использование сериализации(), который будет хранить эту переменную как массив:

$shot = serialize($leadShot); 

При извлечении его, просто десериализуются его.

Sidenote, используйте mysqli вместо функций mysql.

1

удалите петлю foreach. implode Возвращает строку, содержащую строковое представление всех элементов массива в том же порядке, со строкой клея между каждым элементом .

<?php $shot = $_POST['leadShot']; 
      $leadShot = implode(' - ', $shot); 
      $name = mysql_real_escape_string($name); 

      mysql_query("INSERT INTO leaderboards 
    (leadName,leadDate,leadScore,leadShot) 
    VALUES ('$name','$date','$score','$leadShot')") or die(mysql_error()); ?> 
Смежные вопросы