Hướng dẫn how to insert one table id into another table in php - cách chèn id bảng này vào bảng khác trong php

Tôi có hai bảng, một là Information và một bảng khác là work_force

Thông tin

Hướng dẫn how to insert one table id into another table in php - cách chèn id bảng này vào bảng khác trong php
`

work_force

Hướng dẫn how to insert one table id into another table in php - cách chèn id bảng này vào bảng khác trong php

Khi addInformation() được gọi, tôi muốn dữ liệu chèn vào thông tin và id là tự động tăng sẽ chèn vào lực lượng lao động bảng, cột twf.Information, and the id which is auto-increment will insert into table workForce, column twf.

Đây là những gì tôi đã thử

addInformation.php

<?php 

    if($_SERVER['REQUEST_METHOD']=='POST'){

        //Getting values
        $name = $_POST['name'];
        $weather = $_POST['weather'];
        $date = $_POST['date'];
        $status = $_POST['status'];
        $timeIn = $_POST['timeIn'];
        $timeOut = $_POST['timeOut'];

        //Creating an sql query
        $sql = "INSERT INTO information(name, weather, date, status, time_in, time_out) VALUES ('$name','$weather','$date', '$status', '$timeIn', '$timeOut')";
        $sql="INSERT INTO work_force (twf) VALUES (LAST_INSERT_ID(), )"


        //Importing our db connection script
        require_once('dbConnect.php');

        //Executing query to database
        if(mysqli_query($con,$sql)){
            echo 'Information Added Successfully';
        }else{
            echo 'Could Not Add Information';
        }

        //Closing the database 
        mysqli_close($con);
    }
?>

Nhưng tôi bị mắc kẹt trong chèn id vào twf.

 addInformation(name, weather, date2, status, first1[1], last1[1]);
 addWorkForce(Sub, NoP, NoH, a);

 public void addInformation(final String name, final String weather, final String date2, final String status, final String timeIn, final String timeOut) {
        class AddInfo extends AsyncTask<String, Void, String> {
            ProgressDialog loading;

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loading = ProgressDialog.show(WorkDetailsTable.this, "Please Wait", null, true, true);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                Toast.makeText(getApplicationContext(), "AAAA"+s, Toast.LENGTH_LONG).show();
                //addWorkForce(Sub, NoP, NoH, Long.parseLong(s));
               // addWorkDetails(results, Long.parseLong(s));
            }

            @Override
            protected String doInBackground(String... params) {

                HashMap<String, String> data = new HashMap<String, String>();
                data.put(Config.KEY_USER_NAME, name);
                data.put(Config.KEY_WEATHER, weather);
                data.put(Config.KEY_DATE, date2);
                data.put(Config.KEY_STATUS, status);
                data.put(Config.KEY_TIMEIN, timeIn);
                data.put(Config.KEY_TIMEOUT, timeOut);
                RequestHandler rh = new RequestHandler();
                String result = rh.sendPostRequest(Config.ADD_INFORMATION, data);
                return result;
            }
        }

        AddInfo ru = new AddInfo();
        ru.execute(name, weather, date2, status, timeIn, timeOut);
    }

addWorkForce.php

<?php 
    if($_SERVER['REQUEST_METHOD']=='POST'){

        //Getting values
        $subcontractors = $_POST['subcontractors'];
        $noPeople = $_POST['noPeople'];
        $noHours = $_POST['noHours'];
        $twf = $_POST['twf'];


        //Creating an sql query
        $sql = "INSERT INTO work_force(subcontractors, number_of_person, number_of_hours, twf) VALUES ('$subcontractors','$noPeople','$noHours','$twf')";

        //Importing our db connection script
        require_once('dbConnect.php');

        //Executing query to database
        if(mysqli_query($con,$sql)){
            echo 'Work Force Added Successfully';
        }else{
            echo 'Could Not Add Work Force';
        }

        //Closing the database 
        mysqli_close($con);
    }
?>

Bạn đã có các giá trị mà bạn có ID trong một bảng. Chèn ID trong một lần!

Tìm kiếm một số ID (hình ảnh của Lucas Pezeta trên Pexels)

Bạn làm gì khi bảng của chúng tôi mong đợi ID, nhưng tất cả những gì chúng tôi có là chuỗi? Hãy để tưởng tượng chúng tôi là một nhà hàng. Chúng tôi lưu trữ mọi mục menu và các thành phần của nó vào cơ sở dữ liệu của chúng tôi để chúng tôi có thể theo dõi tất cả các loại thống kê; Tần suất một món ăn được đặt hàng và thành phần nào phổ biến nhất, ví dụ:

Chúng tôi muốn lưu trữ một công thức mới vào bảng công thức nấu ăn nhưng có một vấn đề: Bảng này mong đợi một thành phần_id và không phải là thành phần_name mà chúng tôi hiện đang có. Làm thế nào chúng ta có thể chèn các ID này vào bảng công thức nấu ăn trong khi chúng ta chỉ có tên?

Bài viết này tập trung vào việc lưu trữ các công thức và thành phần đó theo cách thông minh nhất có thể bằng cách sử dụng một bảng thành phần độc đáo. Sau khi đọc bài viết này, bạn sẽ:

  • Hiểu bảng duy nhất
  • hiểu cách sử dụng một bảng thông qua
  • chỉ có thể chèn các giá trị duy nhất vào bảng duy nhất
  • có thể chèn vào một bảng trong khi lấy id từ trên bảng duy nhất

Đầu tiên, chúng tôi sẽ thiết lập một số bảng và sau đó chúng tôi sẽ vào truy vấn.

Thành lập

Trong phần này, chúng tôi sẽ xác định cấu trúc cơ sở dữ liệu của chúng tôi và tạo tất cả các bảng của chúng tôi. Sau đó, chúng tôi sẽ chèn một số dữ liệu thử nghiệm trong đó. Sau đó, chúng tôi sẽ nhận được cách chèn với ID đã tham gia. Lưu ý rằng bài viết này sử dụng postgres nhưng các kỹ thuật tương tự áp dụng cho tất cả các cơ sở dữ liệu quan hệ

Cấu trúc cơ sở dữ liệu

Chúng tôi sẽ xác định 3 bảng: một bảng chứa các thành phần, một bảng chứa công thức nấu ăn và bảng thứ ba kết nối hai người với nhau:

Cấu trúc cơ sở dữ liệu của nhà hàng của chúng tôi (hình ảnh của tác giả)

Bảng thành phần

Đầu tiên, chúng tôi sẽ tạo bảng thành phần và chèn một số dữ liệu. Kiểm tra bài viết này cho một truy vấn chỉ có thể chèn các thành phần chưa có trong bảng, đảm bảo chúng tôi không bao giờ gặp lỗi. Đối với ví dụ này, chúng tôi sẽ sử dụng phần chèn bình thường của người Viking bên dưới:this articlefor a query that can only insert ingredients that are not already present in the table, making sure we never get errors. For this example we’ll use the “normal” insert below:

Vì vậy, bảng của chúng tôi trông như thế này:

Thành phần mới được chèn của chúng tôi

Bảng công thức nấu ăn

Bảng này sẽ lưu trữ các công thức nấu ăn có ID duy nhất và tên:

Bảng công thức nấu ăn của chúng tôi

Bảng công thức

Bảng này kết nối một hoặc nhiều công thức nấu ăn với một hoặc nhiều thành phần. Loại bảng này được gọi là ‘thông qua bảng,; Nó phục vụ như một trung gian giữa hai bảng có mối quan hệ nhiều đến nhiều. Một công thức có thể có nhiều thành phần và một thành phần có thể là một phần của nhiều công thức nấu ăn.

Chúng tôi sẽ kết nối chúng cùng với crecipe_id và thành phần_id:

T

Tất cả các bảng của chúng tôi hiện đã được tạo, hãy bắt đầu chèn!

Bàn của chúng tôi được chuẩn bị, hãy để bắt đầu nấu ăn! (Hình ảnh của Maarten van den Heuvel trên pexels)

Chèn vào bảng công thức của chúng tôi

Hãy để có được vấn đề trong tầm tay. Chúng tôi muốn tạo một số bản ghi kết nối một bản ghi trong bảng công thức với một số bản ghi trong bảng thành phần. Chúng tôi cần Recipe_id và một số thành phần_id, cho việc này. Vấn đề là chúng tôi không có thành phần_id, chỉ có tên thành phần. Làm thế nào chúng ta có thể chèn vào bảng điều tra_ingredents? Bây giờ chúng tôi giả sử chúng tôi biết Crecipe_id; Giá trị 1. Truy vấn bên dưới giải quyết vấn đề này:

Hãy để một cái nhìn và đi qua các truy vấn.

  • Dòng 1 đến 8; Ở đây chúng tôi xác định bộ dữ liệu mà chúng tôi muốn chèn. Chúng tôi biết tên của thành phần và số lượng.
  • Trên dòng 9, chúng tôi nói rằng chúng tôi muốn chèn crecipe_id, itredient_id và số lượng vào bảng crecipe_ingredents. Đây là mục tiêu của chúng tôi
  • Trong dữ liệu chọn từ các giá trị đầu vào của chúng tôi (dòng 1 đến 8) mà chúng tôi xác định là d. Chúng tôi tham gia bộ dữ liệu này trên bảng thành phần, phù hợp với tên thành phần.
  • Đây là nơi mà phép thuật xảy ra: Như bạn có thể thấy, chúng tôi chọn giá trị 1 cho crecipe_id, id từ bảng thành phần đã tham gia và số lượng từ dataSet đầu vào.

Tính đến Recipe_id

Bí quyết là xác định dữ liệu đầu vào của chúng tôi là một tập dữ liệu, hãy tham gia vào đó với các bảng bắt buộc và sau đó chỉ chèn ID. Khá dễ dàng phải không? Hãy cùng thử điều này với một ví dụ khó khăn hơn, trong đó chúng tôi không chỉ tham gia thành phần_id mà còn là Recipe_id.

Chúng tôi thực hiện thủ thuật từ truy vấn trước đó hai lần: chúng tôi tham gia công thức từ đầu vào trên cột công thức trong bảng công thức nấu ăn. Sau đó, chúng tôi trích xuất ID công thức từ bảng đó và chèn nó vào Recipe_ingRedents. Kiểm tra kết quả dưới đây:

Chúng tôi đã chèn thành phần_id, tương ứng với công thức chính xác_id. Hoàn hảo!

Làm thế nào tôi có thể nhận ID từ bảng này sang bảng khác trong MySQL?

$ get_teacher = mysqli_query ($ link, "chọn id từ giáo viên trong đó first_name = '$ pound_first_name' và last_name = '$ pound_last_name'"); $ get_teacher_arr = mysqli_fetch_array ($ get_teacher); $ result = mysqli_query ($ link, "chèn vào học sinh (student_id, first_name, last_name, pound_id) giá trị ('$ student_id', '$ ...

Làm thế nào tôi có thể lấy tên từ một bảng khác với ID khớp trong một bảng khác?

Làm thế nào tôi có thể lấy tên từ một bảng khác với ID khớp trong một bảng khác trong SQL ?..
Chọn T1.Tên..
Từ Bảng1 T1 ..
Tham gia bên trái TABLE2 T2 trên T2.Tên = T1.Tên..
Ở đâu T2.Tên là NULL ..

Làm thế nào tôi có thể tham gia hai bảng trong PHP?

1. Tham gia bên trong: Tham gia bên trong là một từ khóa chọn các bản ghi có giá trị phù hợp trong cả hai bảng.Bằng cách sử dụng SID, chúng ta có thể tham gia hai bảng này bằng cách sử dụng tham gia bên trong, vì, SID là phổ biến trong hai bảng.INNER JOIN : The INNER JOIN is a keyword that selects records that have matching values in both tables. By using sid, we can join these two tables using an Inner join, since, sid is common in two tables.

Làm thế nào tìm nạp dữ liệu từ một bảng và chèn vào một bảng khác trong Laravel?

Làm thế nào tôi có thể lấy dữ liệu từ bảng này sang bảng khác ở Laravel ?..
Tạo một thể hiện mới với phương thức sao chép () dựa trên bản ghi cũ hoặc gốc ..
Lưu trữ phiên bản mới này với phương thức Save () và phương thức được giải quyết () trong bảng mới ..
Xóa bản ghi cũ khỏi bảng gốc bằng phương thức Delete () của mô hình ..