2014-10-06 103 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

什麼是leadShot的SQL類型? – 2014-10-06 13:51:01

+0

不是答案,但我假設你熟悉[First Normal Form](https://en.wikipedia.org/wiki/First_normal_form)? – pjmorse 2014-10-06 13:51:09

+0

嗨,leadShot的SQL類型是文本? – user3585684 2014-10-06 13:56:10

回答

0

使用的serialize(),這將變量存儲爲一個數組:

$shot = serialize($leadShot); 

當檢索它,只需解序列化它。

旁註,使用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()); ?>