简体   繁体   中英

getting an error while inserting php form data into mysql database using MVC

Hi i downloaded opencart version 1.5.2.1...now i am developing an API using the opencart flow.i developed the form using using tpl,controller,language files. i wrote model also.what the exact concept is when i enter the form data that should be loaded into database...but it showing an error saying undefined index in model.how to get the form data in controller and how to pass that data to the model... please help me.

this is my controller file:

           <?php
  class ControllerSaleAd extends Controller {
private $error = array();

 public function index() {

    $this->load->language('sale/ad');


    $this->document->setTitle($this->language->get('heading_title'));

    $this->load->model('sale/ad');
$this->data['heading_title']=$this->language->get('heading_title');
$this->data['entry_customer_name'] = $this->language->get('entry_customer_name');
$this->data['column_name']=$this->language->get('column_name');
$this->data['column_place'] = $this->language->get('column_place');
$this->data['column_date'] = $this->language->get('column_date');

$this->data['column_units'] = $this->language->get('column_units');
$this->data['column_price'] = $this->language->get('column_price');
$this->data['button_insert'] = $this->language->get('button_insert');


$this->data['breadcrumbs'] = array();

$this->data['breadcrumbs'][] = array(
            'text'      => $this->language->get('text_home'),
            'href'      => $this->url->link('sale/ad', 'token=' . $this->session->data['token'], 'SSL'),
            'separator' => false
);

$url='';
$this->data['action'] = $this->url->link('sale/ad', 'token=' . $this->session->data['token'] . $url, 'SSL');

$this->template='sale/ad.tpl';
$this->children = array(
            'common/header',
            'common/footer'
);

$this->response->setOutput($this->render());

$this->insert();
/*$this->load->model('sale/ad');

$this->data['orders']= array();
$data=array(
'customer'  => $customer,
'adtype'    => $adtype,
'adplace'   => $adplace,
'date'      => $date,
'units'     => $units,
'price'     => $price,
);

$results = $this->model_sale_ad->insert($data);

$this->redirect($this->url->link('sale/ad', 'token=' . $this->session->data['token'] . $url, 'SSL'));*/
}

public function insert() {
    echo("inserting data");

    $this->load->model('sale/ad');

    if (($this->request->server['REQUEST_METHOD'] == 'POST')) {

        echo("hello");
        echo($this->request->post);
        echo($this->model_sale_ad->insert);
        $this->model_sale_ad->insert($this->request->post);


        echo("in if method");


        /*$url = '';

        if (isset($this->request->get['customer'])) {
            $url .= '&customer=' . $this->request->get['customer'];
        }

        if (isset($this->request->get['adtype'])) {
            $url .= '&adtype=' . $this->request->get['adtype'];
        }

        if (isset($this->request->get['adplace'])) {
            $url .= '&adplace=' . $this->request->get['adplace'];
        }

        if (isset($this->request->get['date'])) {
            $url .= '&date=' . $this->request->get['date'];
        }

        if (isset($this->request->get['units'])) {
            $url .= '&units=' . $this->request->get['units'];
        }

        if (isset($this->request->get['price'])) {
            $url .= '&price=' . $this->request->get['price'];
        }


            $customer= $this->request->get[$entry_customer_name];
            echo($customer);
        $data=array(
        'customer'  => $customer,
        'adtype'    => $adtype,
        'adplace'   => $adplace,
        'date'      => $date,
        'units'     => $units,
        'price'     => $price,

        );

        $results = $this->model_sale_ad->insert($data);*/

        $this->redirect($this->url->link('sale/ad', 'token=' . $this->session->data['token'] . $url, 'SSL'));
    }


}



}

  ?>

this is my model:

        <?php

   class ModelSaleAd extends Model{

public function insert($data)
{
    $this->db->query("INSERT INTO " . DB_PREFIX . "ad SET customer = '"
    .$this->db->escape($data['customer']) . "',adtype = '" .$this->db->escape($data['adtype']) . "',adplace = '" . $this->db->escape($data['adplace']) ."',date = NOW()'" . "',units = '".(int)$data['units'] ."',price = '".(int)$data['price']."')");


}
   }

try looking at $data['customer'] type variables in public function insert , eg var_dump($data) . It could simple be that you're missing a variable from you array and when generating the sql it's missing.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM