2015-09-12 2 views
0

Динамическая форма HTML (с некоторой помощью js) и скрипт PHP ниже вставляют введенные пользователем значения в MySQL успешно, за исключением того, что все строки из формы помещаются в одну строку в базе данных. Что я делаю не так?PHP MYSQL Вставка динамического массива в базу данных

Динамическая форма HTML:

<table id="dataTable" class="form" border="4"> 
    <tbody style="font-size:8pt"> 
    <th> 
     <td align="center">Company</td> 
     <td align="center">Project</td> 
     <td align="center">Sub-Project</td> 
     <td align="center">Change From</td> 
     <td align="center">Change To</td> 
     <td align="center">Activity</td> 
     <td align="center">Responsible</td> 
     <td align="center">Dur</td> 
    </th> 
    <tr > 
     <p> 
     <td><input type="checkbox" required="required" name="chk[]" checked="checked" /></td> 
     <td><input style="width:100px" type="text" readonly="readonly" name="coa[]" value="<?php echo $co; ?>"> 
     </td> 
     <td> 
      <select name="Projectname[]" style="font-size:10pt"> 
       <option selected="selected" required="required">Select project</option> 
       <?php 
        foreach($proj as $item){ 
       ?> 
       <option value="<?php echo $item; ?>"><?php echo $item; ?></option> 
       <?php 
        }       
        mysqli_close($conn); 
       ?> 
      </select> 
     </td> 
     <td><input style="width:100px" type="text" required="required" name="Subproj[]"></td> 
     <td><input style="width:130px" type="text" required="required" name="Changefrom[]"></td> 
     <td><input style="width:130px" type="text" required="required" name="Changeto[]"></td> 
     <td><input style="width:300px" type="text" required="required" name="Activity[]"></td>      
     <td><input style="width:90px" type="text" required="required" name="Resp[]"></td> 
     <td><input type="text" required="required" class="small" name="Durest[]"></td> 
     </p> 
    </tr> 
    </tbody> 
</table> 

PHP скрипт:

<?php 
    include("../../db_conn_ci_i.php"); 
    if(isset($_POST)==true && empty($_POST)==false){ 
    $co=$_POST['co'];    
    $chkbox = $_POST['chk']; 
    $Projectname=$_POST['Projectname']; 
    $Subproj=$_POST['Subproj'];   
    $Changefrom=$_POST['Changefrom']; 
    $Changeto=$_POST['Changeto']; 
    $Activity=$_POST['Activity']; 
    $Resp=$_POST['Resp']; 
    $Durest=$_POST['Durest']; 
    } 
    $pco=implode(',',$co); 
    $pa=implode(',',$Projectname); 
    $pb=implode(',',$Subproj); 
    $c=implode(',',$Changefrom); 
    $d=implode(',',$Changeto); 
    $e=implode(',',$Activity); 
    $f=implode(',',$Resp); 
    $g=implode(',',$Durest); 

    $sql=" INSERT INTO projects (co,Projectname,Subproj,Changefrom,Changeto,Activity,Resp,Durest) 
    VALUES ('.$pco.','.$pa.','.$pb.','.$c.','.$d.','.$e.','.$f.','.$g.') "; 
    $query = mysqli_query($conn,$sql); 

etc,etc 
?> 

Любые советы? Спасибо.

+0

Вы можете удалить ">" у результата " – kurt

+0

7 столбцов и 8 значений? – user5173426

ответ

2

Вы добавили дополнительный столбец, но не добавили для него значения. Поскольку вы вставляете семь столбцов с восемью значениями, вот почему он не работает для вас. Ваш запрос на вставку выглядит следующим образом.

$sql=" INSERT INTO projects (Projectname,Subproj,Changefrom,Changeto,Activity,Resp,Durest) 
    VALUES ('.$pa.','.$pb.','.$c.','.$d.','.$e.','.$f.','.$g.') "; 

     $query = mysqli_query($conn,$sql); 
+0

Извинения. Поле «co» было там. Моя опечатка. – nuddernuby

+0

@nuddernuby Вы имеете в виду, что вам также нужно добавить $ pco также в таблицу? –

+0

@nuddernuby ok, тогда ваш запрос выглядит так: $ sql = "INSERT INTO projects (co, Projectname, Subproj, Changefrom, Changeto, Activity, Resp, Durest) VALUES ('. $ Pco.', '. $ Pa. ','. $ pb. ','. $ c. ','. $ d. ','. $ e. ','. $ f. ','. $ g. ') "; $ query = mysqli_query ($ conn, $ sql); Я думаю, вам нужно добавить точку (.) В эту переменную «$ pco». посмотрите мой запрос. –

Смежные вопросы