2014-12-14 3 views
0

array of dataКак сохранить каждый данные из массива в базу данных

У меня есть форма, где мне нужно было разделить на две таблицы в базе данных. tbl_1 состоят из одного значения за столбец, то tbl_2 состоят из нескольких значений для каждого столбца. Я знаю, если я передаю несколько данных за столбец, я буду нарушать нормализацию в базе данных. Итак, что я сделал, я ссылаюсь tbl_1 на tbl_2. Проблема в том, что я не знаю, как сохранить каждое значение в массиве в столбце. пример Классификация - 4 значение, которое необходимо было сохранить в tbl_2 и ссылаться на него tbl_1. Как я могу это сделать? Я использую PDO.

HTML фрагмент:

<input type="text" name="classification[]" placeholder="Classification No. 1" /> 
<input type="text" name="classification[]" placeholder="Classification No. 2" /> 
<input type="text" name="classification[]" placeholder="Classification No. 3" /> 
<input type="text" name="classification[]" placeholder="Classification No. 4" /> 

Таким образом, для каждого значения будет создать 4 строки, имеет тот же идентификатор будучи ссылка tbl_1. Это должно быть так:

enter image description here

+0

почему не используется у нескольких одномерного массива ... Данные [1] [1] ... и т. Д. –

+0

Кто такой массив данных, если на вашей странице отображается массив «Классификация»? Кроме того, я думаю, вам просто нужно вставить сначала в tbl_1, взять идентификатор, а затем вставить другие значения в tbl_2 –

+0

Что находится в tbl_1? – Eddy

ответ

0

multidimensional array Попробуйте вместо этого.

Таким образом, вы input могут быть что-то вроде:

<input type="text" name="data[classification][]" placeholder="Classification No. 1" /> 
<input type="text" name="data[area][]" placeholder="Area No. 1" /> 
<input type="text" name="data[market_value]" placeholder="Market Value No. 1" /> 

Затем, используя for петли, вы можете insert их database:

$data = 'your array here whatever you receive using GET/POST'; 

for($i=0; $i<count($data['classification']); $i++){ 
    $sql = INSERT INTO (`tbl_1_id`, `tbl_2_id`, `classification`, `area`, `market_value`) VALUES (`auto_increment_id`, `value_of_table1`, $data['classification'][$i], $data['area'][$i], $data['market_value'][$i]); 
} 
0

Я просто даю демо .... попробовать что-то вроде этого

<?php 

$x = 1; 
$y = 1; 

$classification = array('class1', 'class2'); 
$area = array('area1', 'area2'); 
$market = array('market1', 'market2'); 

$no_of_loop = count($classification); //4 

while($no_of_loop) 
{ 
    $query = insert into (`tbl_1_id`, `tbl_2_id`, `Classification`, `Area`, `Market`) values($x, $y, $classification, $area, $market); 
$x++; 
} 
$y++; 

mysqli_query($query, $con); 

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