-
Notifications
You must be signed in to change notification settings - Fork 0
/
wall.php
120 lines (114 loc) · 5.05 KB
/
wall.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>ReSoC - Mur</title>
<meta name="author" content="Julien Falconnet">
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<header>
<img src="resoc.jpg" alt="Logo de notre réseau social"/>
<nav id="menu">
<a href="news.php">Actualités</a>
<a href="wall.php?user_id=5">Mur</a>
<a href="feed.php?user_id=5">Flux</a>
<a href="tags.php?tag_id=1">Mots-clés</a>
</nav>
<nav id="user">
<a href="#">Profil</a>
<ul>
<li><a href="settings.php?user_id=5">Paramètres</a></li>
<li><a href="followers.php?user_id=5">Mes suiveurs</a></li>
<li><a href="subscriptions.php?user_id=5">Mes abonnements</a></li>
</ul>
</nav>
</header>
<div id="wrapper">
<?php
/**
* Etape 1: Le mur concerne un utilisateur en particulier
* La première étape est donc de trouver quel est l'id de l'utilisateur
* Celui ci est indiqué en parametre GET de la page sous la forme user_id=...
* Documentation : https://www.php.net/manual/fr/reserved.variables.get.php
* ... mais en résumé c'est une manière de passer des informations à la page en ajoutant des choses dans l'url
*/
$userId =intval($_GET['user_id']);
?>
<?php
/**
* Etape 2: se connecter à la base de donnée
*/
$mysqli = new mysqli("localhost", "root", "root", "socialnetwork");
?>
<aside>
<?php
/**
* Etape 3: récupérer le nom de l'utilisateur
*/
$laQuestionEnSql = "SELECT * FROM users WHERE id= '$userId' ";
$lesInformations = $mysqli->query($laQuestionEnSql);
$user = $lesInformations->fetch_assoc();
//@todo: afficher le résultat de la ligne ci dessous, remplacer XXX par l'alias et effacer la ligne ci-dessous
echo "<pre>" . print_r($user, 1) . "</pre>";
?>
<img src="user.jpg" alt="Portrait de l'utilisatrice"/>
<section>
<h3>Présentation</h3>
<p>Sur cette page vous trouverez tous les message de l'utilisatrice : XXX
(n° <?php echo $userId ?>)
</p>
</section>
</aside>
<main>
<?php
/**
* Etape 3: récupérer tous les messages de l'utilisatrice
*/
$laQuestionEnSql = "
SELECT posts.content, posts.created, users.alias as author_name,
COUNT(likes.id) as like_number, GROUP_CONCAT(DISTINCT tags.label) AS taglist
FROM posts
JOIN users ON users.id=posts.user_id
LEFT JOIN posts_tags ON posts.id = posts_tags.post_id
LEFT JOIN tags ON posts_tags.tag_id = tags.id
LEFT JOIN likes ON likes.post_id = posts.id
WHERE posts.user_id='$userId'
GROUP BY posts.id
ORDER BY posts.created DESC
";
$lesInformations = $mysqli->query($laQuestionEnSql);
if ( ! $lesInformations)
{
echo("Échec de la requete : " . $mysqli->error);
}
/**
* Etape 4: @todo Parcourir les messsages et remplir correctement le HTML avec les bonnes valeurs php
*/
while ($post = $lesInformations->fetch_assoc())
{
echo "<pre>" . print_r($post, 1) . "</pre>";
?>
<article>
<h3>
<time datetime='2020-02-01 11:12:13' >31 février 2010 à 11h12</time>
</h3>
<address>par AreTirer</address>
<div>
<p>Ceci est un paragraphe</p>
<p>Ceci est un autre paragraphe</p>
<p>... de toutes manières il faut supprimer cet
article et le remplacer par des informations en
provenance de la base de donnée</p>
</div>
<footer>
<small>♥ 132</small>
<a href="">#lorem</a>,
<a href="">#piscitur</a>,
</footer>
</article>
<?php } ?>
</main>
</div>
</body>
</html>