带有codeigniter框架的php

标签 php mysql codeigniter join

function invitation_result()
{
    $this->load->database();
    $user_id = $_GET['user_id'];
    $qry = mysql_query("select * from sent_invitations where user_id='$user_id'");

    if (mysql_num_rows($qry) > 0) 
    {
        while ($row = mysql_fetch_array($qry))
        {
           $mobile_number = $row['mobile_number'];

           $qry1 = mysql_query("select mobile_number from users where mobile_number = '$mobile_number'");
           $row1 = mysql_fetch_array($qry1);
           $mobile_number = $row1['mobile_number'];
           $users[] = array('mobile_number' => $mobile_number );
           return $users;
        }
    }
}

以上是我的编码。 在sent_invitation表中有3行user_id=11。 从那里我试图根据 user_id 获取所有三行的 mobile_number 。 所有 3 行的 mobile_number 都不同。 从sent_notification表中获取mobile_number后。 我正在将 mobile_number 与用户表的 mobile_number 进行比较。 我看到用户表中有 3 个 mobile_numbers。 我正在尝试展示所有这些。 bt 问题是我的代码 ID 仅显示一行,即 3 中的最后一个手机号码

最佳答案

由于您使用的是 Codeigniter,因此您应该遵循 MVC 模式:

所以 Controller 中的代码应该是:

public function invitation_result(){
     $userId = 0;
     if(($_GET['user_id']) && is_numeric($_GET['user_id']) && $_GET['user_id'] > 0){
      $userId = $_GET['user_id'];
     }
     $data = $this->User_model->getDataFromID($userId);
     return $data;
}

模型的代码应该是:

public function getDataFromID($userId){
    $arrReturn = array();
    if(($userId) && is_numeric($userId) && $userId > 0){
        $this->db->select('*');//You can put the required fields here like : name,mobile_number...
        $this->db->from('sent_invitations');
        $this->db->where("user_id",$user_id);
        $query = $this->db->get();
        $result = $query->result_array();
        if(!empty($result)){
            foreach($result as $key=>$value){
                $this->db->select('*');
                $this->db->from('mobile_number');
                $this->db->where("mobile_number",$value['mobile_number']);
                $querySub = $this->db->get();
                $resultSub = $querySub->result_array();
                if(!empty($resultSub)){
                    array_push($arrReturn,$resultSub);
                }
            }
            return $arrReturn;
        }
    }else{
        return $arrReturn; 
    }
}

当我写下答案时,您应该已经解决了错误,但这个答案将帮助 future 的用户。

关于带有codeigniter框架的php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44822311/

相关文章:

php - 加载 Magento 邮件模板并从代码中填充它的变量?

raspberry-pi - 如何将 MySQL 数据从 Raspberry Pi 传输到我的电脑

php - 如何将用户选择的csv文件导入数据库

php - Codeigniter,通过变量中包含的值增加数据库值

php - PHP 问题中的简单对象 [新手]

php - 在 Woocommerce 商店页面上的类别列表项目中添加一个类

php - Laravel 关系的外键等价物

mysql - 如何编写一个触发器,在提交插入之前更新同一个表中的行?

php - Codeigniter 更改加载的语言

javascript - 如何在codeigniter中显示json数据