в python ..... intendation имеет значение, например:
if a==1:
print("hey")
if a==2:
print("bye")
print("all the best")
В этом случае «все лучшее» будет напечатано, если выполнено одно из двух условий, но если бы это было например
if a==2:
print("bye")
print("all the best")
, тогда «все лучшее» будет напечатано, только если a == 2
Надеюсь, это поможет вам
Ваш контроллер Act_AddProducts
должен выглядеть следующим образом:
function Act_AddProducts()
{
$prodnames = $this->input->post( 'prodname' );
$prodrates = $this->input->post( 'rate' );
if ( ! empty($prodnames) && ! empty($prodrates) )
{
foreach ($prodnames as $key => $value )
{
$data['product_name'] = $value;
/* make sure product_rate columns is correct i just guess it*/
$data['product_rate'] = $prodrates[$key];
$this->ProductModel->add_products($data);
}
}
}
Ваша модель add_products
должен выглядеть следующим образом:
function add_products($data)
{
if ( ! empty($data))
{
$this->db->insert('tbl_product_master', $data);
}
}
Это только для вашей справки .... Простой пример кода для динамической вставки.
defined('BASEPATH') OR exit('No direct script access allowed');
class Checking extends CI_Controller {
public function index()
{
echo "<form method='post' action='". base_url("Checking/save") ."'>";
for($i=0;$i<=5;$i++)
{
echo "<input type='text' name='input_text[]'>";
}
echo "<button type='submit'>Submit</button></form>";
}
public function save(){
foreach($this->input->post("input_text") as $Row){
$this->db->insert("checking",array("input_text"=>$Row['input_text']));
}
}
}
создать контроллер как Checking.php и запустить его .. вы получите идею
Для базы данных
CREATE TABLE `checking` (
`ch` int(11) NOT NULL AUTO_INCREMENT,
`input_text` varchar(255) DEFAULT NULL,
PRIMARY KEY (`ch`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
Если вы хотите загрузить большую запись, используйте insert_batch вместо простой вставки вашего контроллера.
function Act_AddProducts()
{
$product_rate = $_POST['prodrate'];
$product_name = $_POST['prodname'];
if(!empty($product_rate) && !empty($product_rate)){
$data_array = array();
foreach ($product_rate as $key => $value )
{
$tmp_array = array();
$tmp_array['product_name'] = $value;
$tmp_array['product_rate'] = $product_rate[$key];
$data_array[] = $tmp_array;
}
$this->ProductModel->add_products($data_array);
}
модель должна быть
function add_products($data)
{
if($this->db->insert_batch('tbl_product_master', $data))
{
return true;
}
else
{
return false;
}
}
TRY THIS
controller
blockquote>function Act_AddProducts() { $product_rate = $data = array(); $product_rate = $this->input->post( 'prodrate' ); $product_name = $this->input->post( 'prodname' ) if ( !empty($this->input->post( 'prodname' ))&&!empty($this->input->post( 'prodrate' ))) { foreach ( $product_name as $key => $value ) { $data['product_name'] = $value; $data['product_rate'] = $product_rate[$key]; $this->ProductModel->add_products($data); } }
model
blockquote>function add_products($data) { $product_name = $data['product_name']; $product_rate = $data['product_rate']; if($this->db->insert('tbl_product_master', array('product_name' => $product_name,'product_rate' => $product_rate))) { return true; } else { return false; } }
product_rate
равноproduct_rate
, иначе измените его на контроллер, так как u не выдаст имя столбца – pradeep 13 July 2018 в 07:16