在此解决:
我只是想换条线
while ($row = mysql_fetch_array($result)) {
到
while ($row = mysql_fetch_row($result)) {
我使用phpexcel从mysql数据库中提取数据来创建xls文件。我写了两个专栏:标题和视图。(title是db表中的实际列,views是每个标题在表中出现的次数的计数)。
数据写入xls文件,问题是每列写入两次:
|———A—————————————————————————————————————————————————————————————————————————————--|
5---标题-----视图---|
6---标题1----标题1----标题3----标题3------|
7---第二篇-----第二篇-----第六篇-----第六篇---------|
8---标题3-----标题3-----标题4-----标题4-------|
如何修复此问题,使其每列显示一次?
我的代码:
$sql = "
SELECT
titles.title,
COUNT(DISTINCT history.id) AS `count`
FROM
user_history titles
LEFT OUTER JOIN
user_history history
ON
titles.title = history.title
";
$sql .= "
GROUP BY
titles.title
ORDER BY
titles.title
";
$result = mysql_query($sql);
$headings = array('Title', 'Views');
if ($result = mysql_query($sql) or die(mysql_error())) {
$rowNumber = 5;
$col = 'A';
foreach($headings as $heading) {
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$heading);
$col++;
}
// Loop through the result set
$rowNumber = 6;
while ($row = mysql_fetch_array($result)) {
$col = 'A';
foreach($row as $cell) {
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
$col++;
}
$rowNumber++;
}
最佳答案
因为你的加入是无损的。
你两次得到多余的信息
为您的查询执行以下操作:
SELECT
titles.title,
COUNT(DISTINCT titles.id) AS `count`
FROM user_history titles
GROUP BY titles.title
ORDER BY titles.title;