【问题标题】:How to Multiple Select by Data Description [closed]如何通过数据描述进行多选[关闭]
【发布时间】:2021-03-29 13:59:02
【问题描述】:

我无法从我的数据库中选择数据,请您帮我解决这些问题;

这些是我在数据库中的数据:

id_abs     photo     date        time     desc    id_user
------------------------------------------------------------
1          p.png    2021-02-03   07.10    in      13
2          q.png    2021-02-03   18.20    out     13
3          r.png    2021-04-03   07.04    in      15
4          s.png    2021-04-03   18.30    out     15
5          t.png    2021-05-03   07.05    in      13
6          u.png    2021-05-03   18.10    out     13

这是我要选择的 DB 输出表:

注意:我想选择 id_user = 13 的位置

DATE         PHOTO_IN    PHOTO_OUT    IN     OUT
----------------------------------------------------------
2021-02-03   p.png       q.png        07.10  18.20
2021-02-05   t.png       u.png        07.05  18.10 

【问题讨论】:

    标签: php mysql phpmyadmin codeigniter-4 multiple-select-query


    【解决方案1】:

    您可以在 Modelquery select 中使用 subquery。你可以试试这个

    • 模型中的示例子查询
    
        <?php
        
            namespace App\Models;
            
            use CodeIgniter\Database\BaseBuilder;
            use CodeIgniter\Model;
            
            class M_user extends Model {
                protected $table = 'user_absen as UB';
                protected $primaryKey = 'id';
        
                public function getData($user_id = 0) {
                    $this->select('
                       (SELECT
                           UBX.date
                        FROM
                           user_absen UBX
                        WHERE
                           UBX.user_id = UB.user_id
                           AND UBX.date = UB.date
                        GROUP BY
                           UBX.user_id,
                           UBX.date) AS `DATE`,
                       (SELECT
                           UBX.photo
                        FROM
                           user_absen UBX
                        WHERE
                           UBX.user_id = UB.user_id
                           AND UBX.date = UB.date
                           AND UBX.desc = 'in'
                        GROUP BY
                           UBX.user_id,
                           UBX.date) AS `PHOTO_IN`,
                       (SELECT
                           UBX.photo
                        FROM
                           user_absen UBX
                        WHERE
                           UBX.user_id = UB.user_id
                           AND UBX.date = UB.date
                           AND UBX.desc = 'out'
                        GROUP BY
                           UBX.user_id,
                           UBX.date) AS `PHOTO_OUT`,
                        (SELECT
                           UBX.time
                        FROM
                           user_absen UBX
                        WHERE
                           UBX.user_id = UB.user_id
                           AND UBX.date = UB.date
                           AND UBX.desc = 'in'
                        GROUP BY
                           UBX.user_id,
                           UBX.date) AS `IN`,
                        (SELECT
                           UBX.time
                        FROM
                           user_absen UBX
                        WHERE
                           UBX.user_id = UB.user_id
                           AND UBX.date = UB.date
                           AND UBX.desc = 'in'
                        GROUP BY
                           UBX.user_id,
                           UBX.date) AS `OUT`
                   ');
    
                   $this->groupBy('UB.user_id, UB.date');
        
                   if (isset($user_id) && $user_id != 0) {
                      $this->where('UB.user_id', $user_id);
                   }
        
                   // Default output as Array
                   $this->get()->getResult(); 
                }
            }
        ?>
    
    
    • 控制器
    
        <?php
        
            namespace App\Controllers;
            
            use App\Controllers\BaseController;
            use App\Models\M_user;
        
            class ControllerPengadaan extends BaseController {
                protected $m_user;
        
                public function __construct() {
                    $this->m_user = new M_user();
                }
                
                public function index() {
                    $data['data_user'] = $this->m_user->getData(13);
                    echo view('v_index', $data);
                }
            }
        ?>
    
    
    • 查看
    
        v_index.php
    
        <table>
           <tr>
              <th>DATE</th>
              <th>PHOTO_IN</th>
              <th>PHOTO_OUT</th>
              <th>IN</th>
              <th>OUT</th>
           </tr>
           <?php
         
               foreach($data_user as $data) {
                   echo '
                      <tr>
                        <td>'.$data['DATE'].'</td>
                        <td>'.$data['PHOTO_IN'].'</td>
                        <td>'.$data['PHOTO_OUT'].'</td>
                        <td>'.$data['IN'].'</td>
                        <td>'.$data['OUT'].'</td>
                      </tr>
                   ';
               }      
        
           ?>
        </table>
    

    希望对你有所帮助。

    【讨论】:

    • terima kasih :)
    • 萨马兄弟 :) @eve
    猜你喜欢
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多