【问题标题】:Merging table cells in rows with the same name into one cell or rowspan in php在php中将具有相同名称的行中的表格单元格合并到一个单元格或行跨度中
【发布时间】:2015-08-20 07:37:32
【问题描述】:

我在一个表中同时包含多行数据。我想创建一个表格,其中同一时间的所有数据都显示在同一行上,日期也显示在同一行上

我的数据目前是这样的

表格字段喜欢

日期时间产品名称操作 2015-08-20 8:00 AM 产品一 2015-08-20 8:00 AM 产品二 2015-08-20 8:00 AM 产品三 2015-08-20 2:00 PM 产品四 2015-08-20 2:00 PM 产品五 2015-08-20 2:00 PM 产品三

这就是我想要的数据:

日期时间产品名称操作 产品一 2015-08-20 8:00 AM 产品二印 产品三 产品四 2015-08-20 2:00 PM 产品五印 产品三

请有人帮我找到答案

$输出 = ""; $getart2 = mysql_query("SELECT * FROM csv WHERE `date` = CURDATE()"); $result_array = 数组(); 而($row = mysql_fetch_assoc($getart2)) { $result_array[] = $row; }

【问题讨论】:

  • 您已经尝试过什么了吗?请展示您尝试过的方法以及您遇到的具体问题。
  • 有时我真的很想了解为什么有些人认为这样的问题值得投票。就目前而言,它应该被关闭,或者至少被否决,因为它没有表现出任何研究工作。

标签: php mysql database


【解决方案1】:

通过使用数组键对数据进行分组,一种可能的解决方案:

$data = array(
    array('date' => '2015-08-20', 'time' => '8:00 AM', 'product_name' => 'product one'),
    array('date' => '2015-08-20', 'time' => '8:00 AM', 'product_name' => 'product two'),
    array('date' => '2015-08-20', 'time' => '8:00 AM', 'product_name' => 'product three'),
    array('date' => '2015-08-20', 'time' => '2:00 AM', 'product_name' => 'product four'),
    array('date' => '2015-08-20', 'time' => '2:00 AM', 'product_name' => 'product five'),
    array('date' => '2015-08-20', 'time' => '2:00 AM', 'product_name' => 'product six')
);
$data2 = array();
foreach($data as $value) {
    $key = $value['date'].$value['time'];
    if(!isset($data2[$key])) {
        $data2[$key] = array('date' => $value['date'], 'time' => $value['time'], 'product_name' => array());
    }
    $data2[$key]['product_name'][] = $value['product_name'];
}

$output = '<table>';
$output .= '<tr><th>date</th><th>time</th><th>product name</th></tr>';
foreach($data2 as $row) {
    $output .= '<tr>';
    $output .= '<td>'.$row['date'].'</td>';
    $output .= '<td>'.$row['time'].'</td>';
    $output .= '<td>'.implode('<br />', $row['product_name']).'</td>';
    $output .= '</tr>';
}
$output .= '</table>';
echo $output;

【讨论】:

  • 如何直接从数据库中获取,我的代码是 $output = ""; $getart2 = mysql_query("SELECT * FROM csv WHERE d_date = CURDATE()");
  • 如何直接从数据库中获取$data
  • 你不应该再使用 mysql_query() 它已被弃用。 php.net/manual/de/mysqli-result.fetch-array.php 有一些用于从 MySQL 获取数据的 sn-ps。
  • 我的问题解决了谢谢我只是忘了添加 $output = ''; $output .= ''; $output .= '
    日期 时间 产品名称
    ';所以我没有得到正确的结果。
  • 合并单元格后如何将该数据插入数据库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-21
  • 1970-01-01
  • 2020-08-21
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多