Serposcope中的SQL数据库存在问题。基本上我要做的是选择所有关键字及其排名和日期。到目前为止,我设法想出了这样的东西:
select keyword,
rank,
day
from GOOGLE_SEARCH
inner join GOOGLE_RANK on GOOGLE_SEARCH.id = GOOGLE_RANK.google_search_id
inner join RUN on GOOGLE_RANK.run_id = RUN.id
order by day;
它给了我这个结果:
+-----------+------+------------+
| keyword | rank | day |
+-----------+------+------------+
| keyword1 | 4 | 2017-04-01 |
| keyword1 | 4 | 2017-04-02 |
+-----------+------+------------+
我要做的是用HTML返回这样的内容:
+-----------+------+------------+
| keyword | rank | day |
+-----------+------+------------+
| keyword1 | 4 | 2017-04-01 |
| | 4 | 2017-04-02 |
+-----------+------+------------+
所以关键字不重复。你可以给我一个提示,如果我可以从SQL做到这一点,或者我需要在HTML / PHP中隐藏它们吗?我不是开发者,所以如果我问一个微不足道的问题,请原谅我。
答案 0 :(得分:0)
首先,您需要通过分组行对它们进行排序,然后您可以添加其他orderby列:
order by keyword, day;
第二,你需要跳过循环中的类似元素:
if ($result = $mysqli->query($query)) {
$last_keyword = null;
// fetch associative array
while ($row = $result->fetch_assoc()) {
if($row["keyword"] != $last_keyword){
// print the changed keyword
echo $row["keyword"];
// set the last keyword to the new keyword
$last_keyword = $row["keyword"];
}
// do your other listings here
}
// free result set
$result->free();
}