Уважаемые эксперты.
Подскажите, пожалуйста, логику действий по добавлению и выводу спарсенных данных:
С помощью PHP Simple Html Dom Parser парсятся названия и количество просмотров каждой статьи с данной страницы и заносятся в БД.
include ('simple_html_dom.php');
$html = file_get_html('http://baltluch.ru/ecotropa47');
foreach ($html->find('div.publication') as $pub)
{
$title = $pub->find('h3.publ_title', 0);
$stat = $pub->find('.pink_numbers', 0);
echo "<tr><td>$title->plaintext</td><td>$stat</td></tr>";
$conn = mysqli_connect($servername, $username, $password, $database);
if (!$conn)
{
die("Connection failed: " . mysqli_connect_error());
}
$today = date("d.m.y");
$sql = "INSERT INTO bluch_views (bluch_date, bluch_title, bluch_views) VALUES ('{$today}', '{$title->plaintext}', '{$stat}')";
if (mysqli_query($conn, $sql))
{
}
else
{
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
}
После занесения в БД, таблица выглядит так:
| bluch_date | bluch_title | bluch_views |
| 08.12.2019 |название_статьи | 25 |
| 08.12.2019 |название_статьи2| 32 |
| 08.12.2019 |название_статьи3| 32 |
После обновления файла, например, на следующий день, в базу добавляются новые данные и таблица выглядит следующим образом:
| bluch_date | bluch_title | bluch_views |
| 08.12.2019 |название_статьи | 25 |
| 08.12.2019 |название_статьи2| 32 |
| 08.12.2019 |название_статьи3| 32 |
| 09.12.2019 |название_статьи | 30 |
| 09.12.2019 |название_статьи2| 40 |
| 09.12.2019 |название_статьи3| 50 |
Выводя данные из таблицы в отдельный файл:
$sql = mysqli_query($link, 'SELECT `bluch_title` FROM `bluch_views`');
while ($result = mysqli_fetch_array($sql))
{
echo "<tr><td>{$result['bluch_title']}</td><td>{$result['bluch_views']}</td></tr>";
}
Получаю таблицу такого вида в HTML:
| Дата | ИМЯ СТАТЬИ | Просмотры |
| 08.12.2019 |название_статьи | 25 |
| 08.12.2019 |название_статьи2| 32 |
| 08.12.2019 |название_статьи3| 32 |
| 09.12.2019 |название_статьи | 30 |
| 09.12.2019 |название_статьи2| 40 |
| 09.12.2019 |название_статьи3| 50 |
Вопрос: Какую создать структуру БД, чтобы реализовать вывод в отдельный файл HTML-таблицы такого вида:
| ИМЯ СТАТЬИ | 08.12.2019 | 09.12.2019 | 10.12.2019 | 11.12.2019 |
|название_статьи | 25 | 30 | 35 | 44 |
|название_статьи2| 32 | 40 | 48 | 52 |
|название_статьи3| 32 | 38 | 52 | 63 |
То есть после каждодневного обновления файла, в БД заносятся данные о просмотре каждой статьи, а затем в отдельном файле в таблице добавляется столбец с данными о просмотрах за каждый день.
Буду благодарен за любую помощь!
Я потренировался на своей таблице https://ibb.co/h269716 таблица
и вот мой код
<?php
$conn = new mysqli('localhost', '**', '', 'test');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$query = "select * from table01 ";
$result = $conn->query($query);
while($row2 = mysqli_fetch_assoc($result))
{
$arr2[]=$row2;
}
$row=count($arr2);
for($i = 0; $i < $row; $i++) {
$dat[$arr2[$i]['date1']]=1; //делаем уникальную дату(ключь не может повторятся)
$name[$arr2[$i]['bluch_title']]=2;//делаем уникальное название(ключь не может повторятся)
}
echo '<table border="1">';
echo '<tr>';
echo '<td>Name';
foreach ($dat as $key => $value) {
echo'<td>'.$key;
}
echo '</td>';
echo '</tr>';
foreach ($name as $key1 => $value1) {
foreach ($dat as $key => $value) {
$query0 = "select * from table01 where date1='".$key."' and bluch_title='".$key1."'";
$result2 = $conn->query($query0);
while($row21 = mysqli_fetch_assoc($result2))
{
$arr21[]=$row21['bluch_views'];
}
}}
$res=array_chunk($arr21, 2, TRUE); //разбиваем массив
foreach ($res as $key6 => $value6) {
# code...
$fud[]=array_values($value6); //пересоздаём ключи во вложенном массиве
}
$k='-1';
foreach ($name as $key1 => $value1) {
$k++;
echo'<tr><td>'.$key1.'<td>'.$fud[$k][0].'<td>'.$fud[$k][1].'</td>';
}
echo '</table>';
?>
вот результат https://ibb.co/8xXszyn
Сборка персонального компьютера от Artline: умный выбор для современных пользователей