2015-01-14 3 views
-1

У меня есть таблица, которая динамически генерируется. Я получаю все правильные данные. Я хочу хранить данные html в таблице базы данных. Итак, как я его храню? Ниже приведен код HTML таблицыхранить ассоциативный массив в базе данных mysql

foreach($res->result() as $row){ 
    echo "<tr>"; 
      echo "<td><input type='hidden' style='width:80%;' value='".$row->product_id."' 
    name='product_id[]'/></td>"; 
      echo "<td><input type='hidden' style='width:80%;' value='".$product_name."' 
    name='product_name[]'/></td>"; 
      echo "</tr>"; 
      echo "<tr>"; 
      echo "<td style='width:40%;'>".$product_name."</td>"; 
      echo "<td><input type='text' style='width:30%;' id='packing' name='packing[]'/></td>"; 
      echo "<td><input type='text' class='quantity' style='width:80%;' readonly='' 
    value='".$row->quantity."' name='quantity[]'/></td>"; 
      echo "<td><input type='text' name='rate' style='width:80%;' class='rate' 
    name='rate[]'/></td>"; 
      echo "<td><input type='text' style='width:100%;' class='amount' readonly='' 
    name='amount[]'/></td>"; 
      echo "</tr>"; 
    } 

На подчиненной формы я сделал это ..

$data['cart']=array(
     'product_id'=>$this->input->post('product_id'), 
     'product_name'=>$this->input->post('product_name'), 
     'packing'=>$this->input->post('packing'), 
     'quantity'=>$this->input->post('quantity'), 
     'rate'=>$this->input->post('rate'), 
     'amount'=>$this->input->post('amount'), 
     ); 
     print_r($data); 

    $i=0; 
     foreach($data['cart'] as $row){ 
      $product_id=$row['product_id']; 
      $product_name=$row['product_name']; 
      $packing=$row['packing']; 
      $quantity=$row['quantity']; 
      $rate=$row['rate']; 
      $amount=$row['amount']; 
      $query = $this->db->query("insert into 
      phppos_billing_items(product_id,product_name,packing,quantity,rate,amount) values 
('$product_id','$product_name','$packing','$quantity','$rate','$amount')"); 
      $i++; 
     } 

Но отображается только последняя запись в table..Anybody имеет ни малейшего представления об этом ?? Я хочу, чтобы записи общей таблицы сохранялись в другой таблице.

+0

Установка переменных сеанса на стороне сервера, настройка параметров AJAX является на стороне клиента. Вы не имеете смысла. http://programmers.stackexchange.com/q/171203/38223 –

+0

укажите код – Duenna

+0

Попробуйте изменить имя как name = 'product_id', чтобы назвать = 'product_id []' – vijaykumar

ответ

1
$product_id =$this->input->post('product_id'), 
     $product_name =$this->input->post('product_name'), 
     $packing =$this->input->post('packing'), 
     $quantity =$this->input->post('quantity'), 
     $rate =$this->input->post('rate'), 
     $amount =$this->input->post('amount'), 

$total = count ($product_id); 

for($i=0;$i<$total;$i++){ 
     $query = $this->db->query("insert into 
      phppos_billing_items(product_id,product_name,packing,quantity,rate,amount) values 
("$product_id[$i]","$product_name[$i]","$packing[$i]","$quantity[$i]","$rate[$i]","$amount[$i]")"); 


} 

Но это будет дает ошибку, когда отсутствуют данные, найденные для каких-либо данных, Поэтому, пожалуйста, не проверить все поля перед этим кодом

0

Хитрость здесь заключается в использовании [] обозначения в ваших элементов формы HTML.

Таким образом, вместо этого:

<input type='text' name='someVar'/> 

У вас есть:

<input type='text' name='someVar[]'/> 

Если у вас есть конкретные ключи вы можете сделать:

<input type='text' name='someVar[myKey1]'/> 

В вашем случае я хотел бы сделать это (HTML):

foreach($res->result() as $row){ 
    echo "<tr>"; 
    echo "<td><input type='hidden' value='".$row->product_id."' name='product_id[]'/></td>"; 
    echo "<td><input type='hidden' value='".$product_name."' name='product_name[]'/></td>"; 
    echo "</tr>"; 
    echo "<tr>"; 
    echo "<td style='width:40%;'>".$product_name."</td>"; 
    echo "<td><input type='text' name='packing[]'/></td>"; 
    echo "<td><input type='text' class='quantity' readonly='' value='".$row->quantity."' name='quantity[]'/></td>"; 
    echo "<td><input type='text' name='rate' class='rate' name='rate[]'/></td>"; 
    echo "<td><input type='text' class='amount' readonly='' name='amount[]'/></td>"; 
    echo "</tr>"; 
} 

Обратите внимание на [] после каждого имени входа? И это будет код, который реагирует на формы представления:

foreach ($_GET['product_id'] as $index => $product_id) { 
    $product_id = $_GET['product_id'][$index]; 
    $product_name = $_GET['product_name'][$index]; 
    $packing = $_GET['packing'][$index]; 
    $quantity = $_GET['quantity'][$index]; 
    $rate = $_GET['rate'][$index]; 
    $amount = $_GET['amount'][$index]; 
    phppos_billing_items(product_id,product_name,packing,quantity,rate,amount) values ('$product_id','$product_name','$packing','$quantity','$rate','$amount')"); 
} 

http://php.net/manual/en/faq.html.php#faq.html.arrays

+0

no it is not рабочая ... неопределенная переменная product_id и index .. –

+0

У вас есть эта строка: foreach ($ _GET ['product_id'] как $ index => $ product_id) { – emurano

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