Comme dit dans le titre,
je cherche a faire un site web qui se modifie en fonction d'une variable dans l'url qui se nomme q
Voici mon code:

<?php 
include '../donnees/database/users.php'; 
global $db;

$q = $db->query("SELECT * FROM users");
while ($user = $q->fetch()) { ?>
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Zevo : Blog du rien - <?= $user['pseudo']; ?> - Site WEB Officiel</title>
	<?php include '../include/icon.php';
		  include '../include/css/style.php';?>
<style type="text/css">
body{
	font-family: Rubik;
	margin: 0;
	padding: 0;
}

.body{
	display: inline-flex;
	width: 100%;
}

.first-title{
	text-align: center;
	text-decoration: underline;
}

.body-text{
	padding: 110px;
	width: 100%;
	font-size: 25px;
}

.pub{
	text-align: center;
	float: right;
	size: 30px;
}

.logo-img{
	text-align: center;
	border-radius: 50%;
}

.pdp{
	width: 100%;
	align-items: center;
}

.img{
	text-align: center;
	padding-bottom: 75px;
}

.e-mail{
	padding-top: 25px;
}

	</style>
</style>
</head>
<body>
	<?php include '../include/header.php'; ?>
	<article class="body">
		<?php include '../include/menudenavigation.php';?>
<div class="body-text">
	<div class="img">
		<p class="img-txt">
			La photo de profil de <?= $user['pseudo']; ?> :
		</p>
		<img class="img-img" src="/img/profil/<?= $user['img']; ?>.png" width="60">
	</div>
	<div class="bio">
		La bio de <?= $user['pseudo']; ?> c'est le Lorem Ipsum :<br>Lorem ipsum dolor sit amet. Nam dolor quibusdam qui necessitatibus cupiditate et nostrum architecto et velit tempore. Ut maxime sunt ut voluptatem sunt ut reiciendis adipisci aut quasi consequatur. Est perspiciatis quis est consequatur assumenda ea corrupti repudiandae est dignissimos ipsum qui fugit porro ut minus expedita 33 eius ipsa. Cum delectus illum ut accusamus iste non nisi recusandae hic fugiat earum.
	</div>
	<div class="e-mail">
		L'email de <?= $user['pseudo']; ?> est :<?= $user['email']; ?> 
	</div>
</div>
<div class="pub">
			<p>
				Oui il n'y a pas de pub (C la street) Lorem Ipsum :<br>In magnam consequatur eos possimus praesentium est doloribus <br>voluptatem? Est dolor saepe qui dolores excepturi et quia consequatur<br> et repellat ullam. Qui porro sint ea internos fuga qui iste beatae<br> aut mollitia quaerat eos quasi cumque. Et libero consectetur ab <br>officiis delectus et voluptatem galisum sit esse asperiores rem<br> aliquid repellendus. 33 ratione iste in nihil quod ea maxime <br>adipisci non quod galisum vel blanditiis facere. Aut vitae expedita <br>aut consequatur deleniti et odit corporis ex dolor molestiae.<br> Eos dolores temporibus sit blanditiis aliquam ex architecto <br>accusamus ea consectetur illo est aperiam fuga sed officiis voluptas.<br> 33 similique iusto et harum cumque et rerum quia vel perferendis<br> recusandae sed quia quae eos vitae voluptas. Et maiores<br> sequi <em>Vel reiciendis At eligendi autem aut sunt eligendi</em> <br>est animi facere. Eum reprehenderit dolore aut quaerat vitae <strong><br>Est veniam et maiores inventore nam quasi quia ut veniam ducimus<br></strong>. Qui internos dicta id natus deleniti et velit quia sed <br>dolores facilis sed quia cupiditate nam commodi laborum non quis <br>rtemporibus. Et adipisci mollitia non nisi nisi aut repudiandae<br> modi in aliquam iste. Est voluptas eius non modi corrupti<br> aut dignissimos itaque non mollitia exercitationem sed praesentium<br> dolorem  odit quia 33 amet fugit. Est consequatur quae sit<br> assumenda eaque et minima sunt ut doloribus atque. <br>
			</p>
		</div>
	</article>
	<?php include '../include/footer.php'; ?>
</body>
</html>
<?php }; ?>

J'aimerai savoir comment faire en sorte de n'afficher qu'une seule page car ma page se répète en fonction du nombre d'utilisateurs dans ma base de données.
image a l'appui :
https://ibb.co/sw8QyxX
(on voit le footer en bas et le header qui le suis (c'est comme ca que ma page se repete))
Modérateur
Bonjour,

À l'endroit dans la page où il ya des différences, tu peux insérer un code du genre :
if(isset($_GET["q"])) {
  if($_GET["q"]=="1") {
    // mettre ici ce qu'on doit afficher dans la page quand on a ?q=1 dans l'url
  }
  else if($_GET["q"]=="2") {
    // mettre ici ce qu'on doit afficher dans la page quand on a ?q=2 dans l'url
  }
  else if($_GET["q"]=="3") {
    // mettre ici ce qu'on doit afficher dans la page quand on a ?q=3 dans l'url
  }
  // etc.
}

Amicalement,
Oui, mais je ne veut pas avoir a répéter le code pour chaques utilisateurs Smiley ohwell
car le nombre dans l'url est l'id de l'utilisateur et cette page est une page profil.
Modérateur
Bonjour,

Tu ne mets entre les if($_GET["q"]=="n") {} que ce qui est spécifique à un utilisateur. Ce qui est commun à tous, tu le mets avant ou après (et une seule fois bien sûr).

Amicalement,
Modifié par parsimonhi (30 Jan 2022 - 19:57)
Bonsoir,
Si j'ai bien compris ton problème, le souci vient de cette ligne :
while ($user = $q->fetch())

Tout ce qui vient derrière est exécuté pour chaque user de ta base...
Si tu mets juste $user = $q->fetch(), ton code sera exécuté pour le premier user trouvé dans ta base seulement...
Il manque donc dans ta requête un WHERE te permettant d'identifier l'utilisateur pour adapter l'affichage, du genre :
$q = $db->query("SELECT * FROM users WHERE user_id = 42");

ATTENTION : ne pas utiliser directement le code ci-dessus qui comporte une grosse faille de sécurité, renseigne-toi sur les requêtes préparées...
Meilleure solution