简体   繁体   English

按日期分组(php,mysql)

[英]Group by date (php, mysql)

I have a mysql table 我有一个mysql表

daten    name      sub   rate
*******************************
09.22  Jonh     some5      one
09.22  Jonh     some2      two
09.22  Jonh     some3      two

Need to get in html: 需要获取HTML:

Jonh:
date some5 some2 some3
***********************
09.22 one  two   two

I do: 我做:

$str = "SELECT * FROM table WHERE name= '$name' group by daten";
$rts = mysql_query($str);

echo "<h1>".$name."</h1>";
echo "<table border=\"1\"><th>date</th> "; 

   while($row = mysql_fetch_array($rs)) {

echo  "<th>".$row['sub'] . "</th></tr>";
echo  "<tr><td>".$row['daten'] ."</td><td>".$row['rate']."</td></tr>";
     }
echo "</table>";

But such a code, when group by daten, displays only the first value. 但是,这样的代码在按日期分组时仅显示第一个值。 Without group all quite wrong. 没有小组,一切都是错误的。

Please tell me what is wrong and where to dig. 请告诉我哪里出了问题以及在哪里进行挖掘。

Thank you 谢谢

you need to get all data in single row so you have to use if condition under your query. 您需要在单行中获取所有数据,因此必须在查询下使用if条件。 Mysql if function returns a value based on a condition. Mysql if函数基于条件返回值。 The syntex of IF is IF的上界是

if (expr, if_true_expr, if_false_expr)

If the expr evaluates to TRUE ie, expr is not NULL and expr is not 0, the IF function returns the if_true_expr, otherwise it returns if_false_expr. 如果expr的计算结果为TRUE,即expr不为NULL并且expr不为0,则IF函数返回if_true_expr,否则返回if_false_expr。 The IF function return a numeric or a string, depending on how it is used. IF函数根据其使用方式返回数字或字符串。

SELECT
    `name`
  , MAX(IF(`rate` = 'one', `rate`, NULL)) some5
  , MAX(IF(`rate` = 'two', `rate`, NULL)) some2
  , MAX(IF(`rate` = 'two', `rate`, NULL)) some3
FROM
  database1
GROUP BY
  name;

use this query : SELECT daten, GROUP_CONCAT(sub) as sub FROM table WHERE name= '$name' group by daten. 使用此查询:SELECT daten,GROUP_CONCAT(sub)作为FROM FROM table WHERE name ='$ name'的子项,按daten分组。 you will get expected output. 您将获得预期的输出。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM