форма вставки данных в базу данных с одним столбцом внешнего ключа в php - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь вставить контактную форму в базу данных.

1.) Я пытаюсь вставить контактную форму без внешнего ключа, работающего нормально.

2.) Но форма вставки данных с другим столбцы внешнего ключа таблицы не работают.

control.php

if(isset($_REQUEST['submit']))
            {
                $co_name=$_REQUEST['co_name'];
                $co_email=$_REQUEST['co_email'];
                $co_subject=$_REQUEST['co_subject'];
                $co_comment=$_REQUEST['co_comment'];
                
                $data=array("co_name"=>$co_name,"co_email"=>$co_email,"co_subject"=>$co_subject,"co_comment"=>$co_comment);
                $res=$this->insert('customer_contact',$data);
                if($res)
                {
                    echo"sucess";
                }
                else
                {
                    echo "Wrong";
                }
            }

Это model.php код

<?php 

class model
{
    public $conn="";
    function __construct()
    {
        $this->conn=new MySQLi("localhost","root","mohit@75","new_healthy_life");
    }
    function select($tbl)
    {
        $sel="SELECT * FROM $tbl";
        $exc=$this->conn->query($sel);
        while($fetch=$exc->fetch_object())
        {
            $arr[]=$fetch;
        }
        return $arr;
    }
    function insert($tbl,$data)
    {
        $col_arr=array_keys($data);
        $col=implode(",",$col_arr);
        
        $value_arr=array_values($data);
        $value=implode("','",$value_arr);
        
        echo $insert="INSERT INTO `$tbl`($col) value('$value')";
        $exc=$this->conn->query($insert);
        
        return $exc;
    }
}

Под изображением таблицы контактов

enter image description here

My Actual question is form data how to insert with foreign key.

Show image :-

введите описание изображения здесь

Как это решить ...

Спасибо ...

1 Ответ

1 голос
/ 06 мая 2020

Я просто изменю вашу функцию вставки и верну вставленный идентификатор:

function insert($tbl,$data)
    {
        $col_arr=array_keys($data);
        $col=implode(",",$col_arr);

        $value_arr=array_values($data);
        $value=implode("','",$value_arr);

        echo $insert="INSERT INTO `$tbl`($col) value('$value')";
        $exc=$this->conn->query($insert);
        $last_id = $this->conn->insert_id;
        return $last_id;
    }

Теперь в вашем control.php

if(isset($_REQUEST['submit']))
{
    $co_name=$_REQUEST['co_name'];
    $co_email=$_REQUEST['co_email'];
    $co_subject=$_REQUEST['co_subject'];
    $co_comment=$_REQUEST['co_comment'];

    $data=array("co_name"=>$co_name,"co_email"=>$co_email,"co_subject"=>$co_subject,"co_comment"=>$co_comment);
    $res=$this->insert('customer_contact',$data);
    if($res)
    {
        //
        $data=array("foreignkey_col1"=>$foreignkey_col1_data,"foreign_key"=>$res);
        $res1=$this->insert('foreign_key_table',$data);
        if($res1)
        {
            //inserted into master table as well
        }
        else
        {
        //issue while inserting into master table
        }
    }
    else
    {
        echo "Wrong";
    }
}

Я не уверен в вашем другом имени таблицы key, поэтому я только что сохранил stati c и образцы данных, но теперь вы видите, что $res вернет вставленный идентификатор, который вы также можете использовать для вставки в другое имя таблицы, написав другой запрос вставки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...