2015-12-22 133 views
0

假設需要使用html表格按行填充具有12列的sql服務器表。我已經使用for循環創建了文本框,然後我必須將該表單中的值插入到sql表中。我無法做到。這是我已經使用如何通過表格將值更新/插入到具有多列的行中

echo '< form name="myForm" method="post" action="'.$_SERVER['PHP_SELF'].'" align="center" class="form-inline">'; 
    echo'< table border="1" >'; 
    echo ' < tr>< td>< /td>'; 
    for($i = 1; $i <= 12; $i++) { 
     echo '< td>< input type="text" placeholder="enter text" name="mytext[]" value="0">< /td>'; 
    } 
    echo'< /tr>'; 
echo '< /table> 
< input type="submit" value="submit" name="submit"> 
< /form>'; 
if($_POST['submit']) 
{ 
    foreach($_POST['mytext'] as $value) 
    { 
     echo $value." ";  
    } 
    $result=mssql_query("insert into test_table (p1,p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) values ('".$value."')"); 
    } 

表有一個id列的代碼,和12個不同的列。它給我錯誤:

INSERT語句中的列數多於VALUES子句中指定的值。 VALUES子句中的值數量必須與INSERT語句中指定的列數相匹配。所有的文本框都沒有所以一些列裝滿

通知應該得到0

+0

這是一個數組。我如何將值作爲數組插入? –

回答

1

嘗試這樣的:

echo '< form name="myForm" method="post" action="'.$_SERVER['PHP_SELF'].'" align="center" class="form-inline">'; 
     echo'< table border="1" >'; 
     echo ' < tr>< td>< /td>'; 
     for($i = 1; $i <= 12; $i++) { 
      echo '< td>< input type="text" placeholder="enter text" name="mytext[]" value="0">< /td>'; 
     } 
     echo'< /tr>'; 
    echo '< /table> 
    < input type="submit" value="submit" name="submit"> 
    < /form>'; 

$valueArr = array(); 
    if($_POST['submit']) 
    { 
     foreach($_POST['mytext'] as $value) 
     { 
      $valueArr [] = "'".$value."'";  
     } 
     $result=mssql_query("insert into test_table (p1,p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) values (".implode(",",$valueArr).") 
"); 
     } 
+0

驚人的效果 –

+0

不客氣。請將我的答案標記爲「正確答案」 – volkinc

相關問題