php - 使用 MySql 和 PHP 将数据分类在一个共同的日期下

标签 php mysql

我正在尝试制作一个项目管理系统,但我在尝试对共享同一日期的项目进行分类时遇到了困难。例如,如果我今天发布了两个项目,昨天发布了两个项目,我希望它显示如下:

2019-06-01:
project 1 
project 2
2019-05-31:
project 3
project 4

表格是这样的

------------------------------------------------
   id   |   project_name   |       date       |
   01   |   project 1      |    2019-06-01    |
   02   |   project 2      |    2019-06-01    |
   03   |   project 3      |    2019-05-31    |
   04   |   project 4      |    2019-05-31    |
------------------------------------------------

这是我的代码:

<?php
  include "connect.php";


  $get_date = mysqli_query($con, "SELECT `date` FROM `projects` WHERE `user_id` = '1' GROUP BY `date`");

  while($row = $get_date -> fetch_array()){

    $date = $row['date'];
    $string_date = strtotime($date);
    echo $only_date = date('Y-m-d', $string_date) . "<br/>";


    $get_project = mysqli_query($con, "SELECT * FROM `projects` WHERE `user_id` = '1' && `date` = '$date' GROUP BY `date` ORDER BY `date`");

    while($d_row = $get_project -> fetch_array()){
      $name = $d_row['project_name'];
      echo $name . "<br/>";


    }

  }

?>

这是我的代码的输出:

2019-05-30
project 3
2019-05-30
project 4
2019-06-01
project 1
2019-06-01
project 2

最佳答案

考虑以下几点:

DLL:

DROP TABLE my_table;

CREATE TABLE my_table
(id SERIAL PRIMARY KEY
,project_name VARCHAR(12) NOT NULL
,date DATE NOT NULL
);

INSERT INTO my_table VALUES
(1,'project 1','2019-06-01'),
(2,'project 2','2019-06-01'),
(3,'project 3','2019-05-31'),
(4,'project 4','2019-05-31');

代码

<?php

include('path/to/connection/stateme.nts');

$query = "
SELECT date
     , project_name
  FROM my_table
 ORDER
    BY date DESC
     , project_name; -- ORDER BY is not strictly necessary, as the ordering can be done in presentation code.
";

$result = mysqli_query($conn,$query);

$array = array();

while($row = mysqli_fetch_assoc($result)){
  $array[] = $row;
}

$new_array = array();

foreach($array as $v){
  $new_array[$v['date']][] = $v['project_name'];
}

print_r($new_array);
?>

输出:

Array
(
    [2019-06-01] => Array
        (
            [0] => project 1
            [1] => project 2
        )

    [2019-05-31] => Array
        (
            [0] => project 3
            [1] => project 4
        )

)

显然,您可以坚持使用 PDO 方法

关于php - 使用 MySql 和 PHP 将数据分类在一个共同的日期下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56409872/

相关文章:

PHP 分支优化和效率

php - Sphinx 无法读取 searchd 响应

php - 为特定用户显示图像

php - 如何使用 Wordpress 处理这个 CSS 问题?

PHP 多维数组搜索(使用 array_search)

mysql - 准备好的语句,具有 1 亿条记录的 MyISAM 和 MySQL 上的缓存

MySql - 使用索引与普通选择的区别

PHP 邮件 : Cannot redirect user to the required page

php - 如何在多个表中添加/编辑/管理相关数据

php - 产品列表查询中月销售额