2013-07-07 2 views
1

Я собираю вводные поля как массив, который нужно вставить в разные строки в базе данных. Однако он только вставляет первую строку массива.Вставка нескольких массивов в разные строки

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

Вот мой HTML код:

<input type = "text" class = "form_element" name = "wat_office_type[]" /> 
<input type = "number" name = "wat_office_price[]" class = "form_element" /> 

в то время как я использую JQuery, чтобы добавить больше полей ввода.

Вот мой PHP:

$wat_office_type_post = $_POST['wat_office_type']; 
$wat_office_price_post = $_POST['wat_office_price']; 
$wat_office_type = array(); 
$wat_office_price = array(); 

foreach ($wat_office_type_post as $type) { 
    if (!empty($type)) 
     $wat_office_type[] = $afrisoft->antiHacking($type); 
} 

foreach ($wat_office_price_post as $post) { 
    if (!empty($post)) 
     $wat_office_price[] = $afrisoft->antiHacking($post); 
} 

Я хочу, чтобы вставить в 2 отдельных строк и добиться чего-то вроде этого:

-------------------------------------------- 
| Pk | wat_office_type | wat_office_price | 
-------------------------------------------- 
| 1 | executive office |    1000 | 
-------------------------------------------- 
| 2 | Training room |    4000 | 
-------------------------------------------- 
| 3 | Events room  |    5000 | 
-------------------------------------------- 

Я любезно признателен, если я могу получить помощь с insert query (mysql, php) о том, как я могу вставить все значения первого массива в один столбец и значения второго массива во второй столбец, в то время как каждый из них сопоставляет d количество предоставленных массивов.

Спасибо.

ответ

0

Если я правильно понимаю, что вам нужно объединить два массива в нечто вроде

$list = array(
array('pk' => 1, 'type' => 'executive', 'price' => 1000), 
array('pk' => 2, 'type' => 'training room', 'price' => 4000), 
array('pk' => 3, 'type' => 'events room', 'price' => 5000) 
); 

, то вы можете вызвать цикл по каждому элементу для запроса базы данных с каждым элементом, как

foreach($list as $key => $value) { 
$sql = "INSERT INTO table_name (pk, type, price) VALUES (?, ?, ?)"; 
$query = $this->db->prepare($sql); 
$params = array($value['pk'], $value['type'], $value['price']); 
    if($query->execute($params)) { 
    return true; 
    } else { 
    return false; 
    } 
} 

так вместо того, чтобы делать два цикла foreach и помещать результаты в разные массивы, вы могли бы использовать один цикл foreach и создавать ассоциативный массив для каждого набора результатов (я полагаю, что подсчет для обоих ваших массивов одинаковый?), как я упоминал выше.

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