PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Wednesday, February 23, 2022

[FIXED] CODEIGNITER4: how to link value from table_1 to table_2 that I insert using SELECT OPTION tag

 February 23, 2022     codeigniter-4, javascript, mysql, php     No comments   

Issue

See I have 2 tables tbl_office and tbl_result

| id | office_name |   | id | office      | rating    | comment |
|----|-------------|   |----|-------------|-----------|---------|
| 1  | Records     |   | 1  | Records     | Satisfied |         |
| 2  | Logistics   |   | 2  | Logistics   | Satisfied |         |
| 3  | HR          |   | 3  | HR          | Neutral   |         |

i used a SELECT OPTION tag on my form to get the row value of office_name from tbl_office

CONTROLLER

namespace App\Controllers;
use App\Models\SurveyModel;
use App\Models\OfficeMOdel;

class Survey extends BaseController
{
    public function index()
    {
        $data = [];
        helper(['form','url']);

        $office = new OfficeMOdel();
        $data['office'] = $office->findAll();
       

        if($this->request->getMethod() == 'post'){

            $rules = [
                'office' => ['label' => 'Office', 'rules' => 'required'],
                'rating' => ['label' => 'Rating', 'rules' => 'required']
            ];

        if (!$this->validate($rules)){
            $data['validation'] = $this->validator;
        }else{
            $model = new SurveyModel();

            $newData = [
                'office' => $this->request->getVar('office'),
                'rating' => $this->request->getVar('rating'),
                'comment' => $this->request->getVar('comment'),
            ];

            $model->save($newData);
            $session = session();
            $session->setFlashdata('success','Your Feedback has been successfully added to our system!',);

            return redirect()->to('survey/confirmation');
         }
        }

        echo view ('templates/header_form', $data);
        echo view ('surveyform');
        echo view ('templates/footer_form');
    }

PHP/HTML for displaying the values of office_name

<select name="office">

   <?php foreach($office as $row) :?>
   <option><?php echo $row['office_name'] ?></option>
   <?php endforeach; ?>

</select>

IT WORKS, but when I update the value from office_name from tbl_office, the value on the tbl_result does not change. Is there a way to link those value instead of just getting the value of the option when i insert it to the other table?

Thank you so much for answering. Beginner here.


Solution

You should not store office name in your tbl_result . Instead this you should to store office_id:

CREATE TABLE `tbl_office` (
    id int primary key auto_increment,
    name varchar(64)
);

CREATE TABLE `tbl_rating` (
    id int primary key auto_increment,
    name varchar(64)
);

CREATE TABLE `tbl_result` (
    id int primary key auto_increment,
    office_id int,
    rating_id int,
    comment text
);

SELECT `res`.`id`, `o`.`name` AS `office`, `r`.`name` AS `rating`, `comment`
FROM `tbl_result` `res`
JOIN `tbl_office` `o` ON `o`.`id` = `res`.`office_id`
JOIN `tbl_rating` `r` ON `r`.`id` = `res`.`rating_id`

Share SQL fiddle

+====+===========+===========+=========+
| id | office    | rating    | comment |
+====+===========+===========+=========+
| 1  | Records   | Satisfied | (null)  |
+----+-----------+-----------+---------+
| 2  | Logistics | Satisfied | (null)  |
+----+-----------+-----------+---------+
| 3  | HR        | Neutral   | (null)  |
+----+-----------+-----------+---------+


Answered By - Slava Rozhnev
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing